java中的进制转换方法

java中进行二进制,八进制,十六进制,十进制间进行相互转换
  
关键字: java 进制转换  

十进制转成十六进制:  
Integer.toHexString(int i)  

十进制转成八进制  
Integer.toOctalString(int i) 
 
十进制转成二进制  
Integer.toBinaryString(int i)  

十六进制转成十进制  
Integer.valueOf("FFFF",16).toString()  

八进制转成十进制  
Integer.valueOf("876",8).toString()  

二进制转十进制  
Integer.valueOf("0101",2).toString()  

有什么方法可以直接将2,8,16进制直接转换为10进制的吗?  
java.lang.Integer类  

parseInt(String s, int radix)  
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。  
examples from jdk:  
parseInt("0", 10) returns 0  
parseInt("473", 10) returns 473  
parseInt("-0", 10) returns 0  
parseInt("-FF", 16) returns -255  
parseInt("1100110", 2) returns 102  
parseInt("2147483647", 10) returns 2147483647  
parseInt("-2147483648", 10) returns -2147483648  
parseInt("2147483648", 10) throws a NumberFormatException  
parseInt("99",throws a NumberFormatException  
parseInt("Kona", 10) throws a NumberFormatException  
parseInt("Kona", 27) returns 411787  

进制转换如何写(二,八,十六)不用算法  
Integer.toBinaryString  
Integer.toOctalString  
Integer.toHexString  

例一  
public class Test{  
	public static void main(String args[]){  
		int i=100;  
		String binStr=Integer.toBinaryString(i);  
		String otcStr=Integer.toOctalString(i);  
		String hexStr=Integer.toHexString(i);  
		System.out.println(binStr);  
	}  
}

例二  
public class TestStringFormat {  
	public static void main(String[] args) {  
		if (args.length == 0) {  
			System.out.println("usage: java TestStringFormat <a number>");  
			System.exit(0);  
		}  
		Integer factor = Integer.valueOf(args[0]);  
		String s;  
		s = String.format("%d", factor);  
		System.out.println(s);  
		s = String.format("%x", factor);  
		System.out.println(s);  
		s = String.format("%o", factor);  
		System.out.println(s);  
	}  
}  

其他方法:  
Integer.toHexString(你的10进制数);  

例如  
String temp = Integer.toHexString(75);  
输出temp就为 4b  
//输入一个10进制数字并把它转换成16进制  

import java.io.*;  
public class toHex{  
	public static void main(String[]args){  
		int input;//存放输入数据  
		//创建输入字符串的实例  
		BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));  
		System.out.println("请输入一个的整数:");  
		String x=null;  
		try{  
			x=strin.readLine();  
		}catch(IOException ex){  
			ex.printStackTrace();  
		}  
		input=Integer.parseInt(x);  
		System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字  
		System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制  
	}  
}


大数进制转换方法

方法一:

//10进制->2进制 
String a = "-1195";
//输入数值 BigInteger src = new BigInteger(a);
//转换为BigInteger类型 System.out.println(src.toString(2));

//转换为2进制并输出结果 
//2进制->10进制 
String a = "10010101011";
//输入数值 
BigInteger src = new BigInteger(a, 2);
//转换为BigInteger类型 
System.out.println(src.toString());
//转换为2进制并输出结果 由此可见,有2点要注意: 

1. BigInteger的构造函数 
BigInteger(String src)默认参数字符串为10进制数值 
BigInteger(String src, int x)
第2个参数x是指定第一个参数src的进制类型 

2. toString方法 
toString()默认把数值按10进制数值转化为字符串。 
toString(int x)把数值按参数x的进制转化为字符串。


方法二:
//十进制转其他进制
String str;int number;
//转2进制
number = Integer.parseInt(str);    
System.out.println(Integer.toBinaryString(number));
//转8进制
number = Integer.parseInt(str);    
System.out.println(Integer.toOctalString(number));

//转16进制
number = Integer.parseInt(str);    
System.out.println(Integer.toHexString(number));

转换原理:将十进制转换成二进制的算法如下: 
1.给定一个数; 

2.根据十进制转换二进制的思想:
把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。
所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。 

3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。 
public class ChangeTo2 { 
	public static void main(String args[]) { 
		int n=16; 
		int r; 
		int i=0; 
		int[] a=new int[10]; 
		do { 
			if(n%2==1) { 
				r=1; 
			} 
			else { 
				r=0; 
			} 
			a[i]=r; 
			n=n/2; 
			i++; 
		}while(n>0);
		System.out.print("转换成二进制为:"); 
		for(int j=i-1;j>=0;j--) { 
			System.out.print(a[j]); 
		} 
		System.out.println(); 
	} 
} 
2.把二进制转换成十进制的算法如下: 
1.给定一个二进制数 
2.把他看成一个十进制数,依次除以10,每除以一次,变量i加1, 
然后把除的次数加1,就是这个二进制的位数。 
3.然后让除以10之后的结果和10取余,把结果保存到一个数组中。 
4.最后用传统的数学方法求出这个10进制即可~


F

原文地址:https://www.cnblogs.com/riskyer/p/3237087.html