其他进制与⼗进制互相转化如何计算进制转化
⾸先说个很好记的⼀句话:⼏进制,满⼏进⼀
⽐如⼆进制如何 表⽰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.
*/
我们可以⽤到这句公式:
从右往左计算;每⼀位数的值*进制数(次⽅从开始,以此加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
526转为⼗六进制 300/16 =18 (有余数记12) 18/16= 1 (有余数记2) 剩下⼀个1不能除了记1
那么从下往上看的出来的数为:12c
以上就是进制转化的简单计算⽅法,希望对⼤家有点帮助
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论