二进制转8进制怎么转换(二进制转换10进制方法)

生活 0 610
提示 二进制 0,1

八进制 0,1,2,3,4,5,6,7

十进制 0,1,2,3,4,5,6,7,8,9

十六进制 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)

二进制转8进制怎么转换(二进制转换10进制方法)

注意

十六进制中10~15是用字母来表示的,且字母可为大小写,还可以混用。例如十六进制中的10,可以用A或a来表示;1011可以用AB或Ab来表示。

现在正式的话题来了,看下面

一、十进制与二、八、十六进制的互换

1、十进制->八进制

用8连续除十进制数整数部分,直到商为0,逆序排列余数即可得到

用8连续乘十进制数小数部分 ,直到的小数为0或达到所要求的精度为止,正序排列积的整数部分即可得

举例

假设十进制的一个数为83.12

83÷8=10 余数为3 10÷8=1 余数为2 1÷8=0 余数为1

0.12*8=0.96 整数部分为0 小数部分为0.96

0.96*8=7.68 整数部分为7 小数部分为0.68

0.68*8=5.44 整数部分为5 小数部分为0.44

0.44*8=3.52 整数部分为3 小数部分为0.52

此处省略,大家可以自己进行接下来的运算,因为举例,精度就短些。

(十)83.12=(八)123.0753

2、十进制->十六进制

用16连续除十进制数整数部分,直到商为0,逆序排列余数即可得到

用16连续乘十进制数小数部分 ,直到的小数为0或达到所要求的精度为止,正序排列积的整数部分即可得

举例

假设十进制的一个数为299.12

299÷16= 18 余数为B(11)

18÷16=1 余数为2 1 ÷16=0 余数为1

0.12*16=1.92 整数部分为 1 小数部分为0.92

0.92*16=7.68 整数部分为E(14) 小数部分为0.72

0.72*16=5.44 整数部分为B(11) 小数部分为0.52

(十)299.12=(十六)12b.1eb

3、十进制->二进制

用2连续除十进制数整数部分,直到商为0,逆序排列余数即可得到

用2连续乘十进制数小数部分 ,直到的小数为0或达到所要求的精度为止,正序排列积的整数部分即可得

举例

假设十进制的一个数为3.25

3÷2= 1 余数为1 1 ÷2=0 余数为1

0.25*2=0.5 整数部分为 0 小数部分为0.5

0.5*2=1 整数部分为1 小数部分为0

(十)299.12=(二)11.01

总结

其实十进制转二、八、十六进制,大致是一样的,同样的二、八、十六进制转十进制也是这样的

4、二、八、十六进制->十进制

把二进制数(或八进制或十六进制数)按位权形式展开多项式和的形式,求其最后的和

举例 假设二进制数为1111 1*2的三次方 等于8 1*2的二次方 等于4 1*2的一次方 等于2 1*2的零次方 等于1

8+4+2+1=15

即(二)1111=(十)15

注意 最大N此方为总的位数-1,此后次方依次递减,直到为0次方。如二进制1111,最大N次方为 4-1=3,此后依次递减,最后为0次方。八进制、十六进制也是如此

假设八进制数为123 1*8的二次方 等于64 2*8的一次方 等于16 3*8的零次方 等于3

64+16+3=83

即(八)123=(十)83

假设十六进制数为12B

1*16的二次方 等于256

2*16的一次方 等于32

11*16的零次方 等于11

256+32+11=299

即(十六)12B=(十)299

二、八、十六进制与二进制的互换

1、间接法

把二进制转为十进制再到八进制或十六进制,大家可以看我上面的进制的转换,自己试试。

2、直接法

定理1:将三位的二进制转换成一位八进制,相反的,将一位八进制转三位的二进制;

定理2:将四位的二进制转换成一位十六进制,相反的,将一位十六进制转四位二进制

定理3:分位时如位数不够,整数部分在最左边补0,小数部分在最右边补0;

举例: 二进制转八进制、十六进制

假设二进制数为1011001.1101011

进行分位 010 |101.101|010 |为分隔符

剩下的就跟二进制转十进制一样

把每三位看为整体,计算出值,最后连接就行

如010 0*2的二次方 等于0 1*2的一次方 等于2 0*2的零次方 等于0 因此 010=2

同样计算出101(值为5),最后进行连接

(二)10101.10101 = 010 |101.101|010 =(八) 25.52

同样,只是把每四位看为整体,计算出值,最后连接就行

(二)11011011.11011111 =1101|1011.1101|1111 = (十六)DB.DF

而八进制、十六进制转二进制,反过来就行

(十六)D|B.D|F=1101|1011.1101|1111 =(二)11011011.11011111

总结

八为2的三次方,因此需二进制为3位;十六为2的四次方,因此需二进制为4位,所以32进制就应该需二进制为5位,即N进制中,N为2的x次方,该进制就需要二进制x位

如有错误,请指出

写在最后

今天就到这里了哈~

不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】我的【C/C++源码资料学习群】点击进入

相关推荐: