其他进制与十进制互相转化如何计算

进制转化

首先说个很好记的一句话:几进制,满几进一

比如二进制如何 表示3

十进制 : 0   1   2   3
二进制:  0   1   10  11

那在看看别的进制

十进制 : 6   7  8  9
八进制:  6   7  10 11
十进制 :  8  9  10  11  ...  15  16  17  
十六进制: 8  9  a    b  ...  f  10  11
这是当数值比较小时,可能比较轻松的做转化,那么当数值比较大的时候该怎么快速计算呢

二进制: 是0,1组成 0b开头表示二进制

//先看两个例子,二进制转十进制
System.out.println(0b10);  //0 * 2^0 + 1*2^1=2  
System.out.println(0B0110);  //  0 * 2^0 + 1*2^1 + 1*2^2+ 0*2^3 =6
/*
第一个:个位数上为"0",0 * 2^0=0 ; 十位数上为"1"  1*2^1=2  得出结果为2
第二个:个位数上为"0",0 * 2^0=0 ; 十位数上为"1"  1*2^1=2 百位数上为:"1"  1*2^2   
千位数上为:"0"  0*2^3  它们相加得出结果和为6.
*/
我们可以用到这句公式:
  • 从右往左计算;每一位数的值*进制数(次方从0开始,每次加1) 结果就是十进制的值

其他进制转化为十进制也一样可以用这个公式.

八进制: 是0…7之间的数组成 以0开头的数表示八进制

System.out.println(0110);  // 0 * 8^0 + 1*8^1+1*8^2 =  72

十六进制: 由0-9 ,a-f(大小写都可以)之间组成 以ox开头表示十六进制

System.out.println(0X15);  // 5* 16^0 + 1* 16^1 = 21
那么十进制的数如何转化为其他进制的数呢
  • 进制的数一致除以要转的进制数 求余数,从下往上看
例:10转为二进制  10/2 =5 (没有余数 记0)  5/2= 2 余1(有余数记1)  2/2=1(没有余数记0) 剩下一个1不能除了
那么从下往上看的出来的数为:1010 

126转为八进制  126/8 =15 (有余数 记6)  15/8= 1 余7(有余数记7)  剩下一个1不能除了 记1
那么从下往上看的出来的数为:176 
300转为十六进制  300/16 =18 (有余数 记12) 18/16= 1 (有余数记2)  剩下一个1不能除了 记1
那么从下往上看的出来的数为:12c

以上就是进制转化的简单计算方法,希望对大家有点帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值