java十进制数与各进制之间的转换规则与算法

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)); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值