1.十进制数转二进制
转换规则:随机一个十进制数字,十进制整数转换为二进制整数采用"除2取余,商取到0为止,余数逆序排列"法,所得二进制数
Test算法
@Test
public void testBinary() {
System.out.println("请输入一个十进制数:");
Scanner reader = new Scanner(System.in);
int n=0;
int i=0;
int r=0;
n = reader.nextInt();
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.println("转化成的二进制是:");
for (int j = i-1; j>=0; j--) {
System.out.print(a[j]);
}
}
十进制转八进制、十六进制,与转二进制类似:分别用十进制数除以8、16一直到商为0,这里提供一些java方法
@Test
public void test(){
System.out.println("十转二:"+Integer.toBinaryString(120));
System.out.println("十转八:"+Integer.toOctalString(120));
System.out.println("十转十六:"+Integer.toHexString(120));
System.out.println("二转十:"+Integer.valueOf("1010",2));
System.out.println("八转十:"+Integer.valueOf("125",8));
System.out.println("十六转十:"+Integer.valueOf("ABCDEF",16));
}
上面输出结果
十转二:1111000
十转八:170
十转十六:78
二转十:10
八转十:85
十六转十:11259375
2.二进制转十进制
以十进制数10为例,二进制值为1010;
二进制1010 转十进制计算:
0*2^0+1*2^1+0*2^2+1*2^3 = 0+2+0+8 = 10;
规则:从右到左用二进制的每个数去乘以2的相应次方不过,次方要从0开始;
3.八进制转十进制
以十进制120为例,八进制值为170;
八进制170转十进制计算:
0*8^0+7*8^1+1*8^2 = 0+56+64 = 120;
4.十六进制转十进制
以十进制数120为例,十六进制值为78;
十六进制78转十进制计算:
8*16^0+7*16^1 = 8+112 = 120;
其他:二进制、八进制、十进制、十六进制相互转换
int n1 = 14;
//十进制转成十六进制:
Integer.toHexString(n1);
//十进制转成八进制
Integer.toOctalString(n1);
//十进制转成二进制
Integer.toBinaryString(12);
//十六进制转成十进制
Integer.valueOf("FFFF",16).toString();
//十六进制转成二进制
Integer.toBinaryString(Integer.valueOf("FFFF",16));
//十六进制转成八进制
Integer.toOctalString(Integer.valueOf("FFFF",16));
//八进制转成十进制
Integer.valueOf("576",8).toString();
//八进制转成二进制
Integer.toBinaryString(Integer.valueOf("23",8));
//八进制转成十六进制
Integer.toHexString(Integer.valueOf("23",8));
//二进制转十进制
Integer.valueOf("0101",2).toString();
//二进制转八进制
Integer.toOctalString(Integer.parseInt("0101", 2));
//二进制转十六进制
Integer.toHexString(Integer.parseInt("0101", 2));