二进制、八进制、十进制、十六进制之间的转换

转自百度经验:https://jingyan.baidu.com/article/495ba84109665338b30ede98.html

一、进制的英文简写

二进制是Binary,简写为B
八进制是Octal,简写为O
十进制为Decimal,简写为D
十六进制为Hexadecimal,简写为H

 

二、二进制与十进制之间的转换

1、十进制转二进制(正整数)

方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止读数要倒叙读。

 

 

2、十进制转二进制(小数)

小数乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,即读数要顺序读。

0.125 转二进制

第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 
第四步,读数,从第一位读起,读到最后一位,即为0.001。

                    积          整数部分

0.125 x 2 = 0.25             0

0.25 x 2   = 0.5               0

0.5 x 2     = 1.0               1    

150.125 转二进制10010110.001

 

0.45 转二进制(保留到小数点第四位)

第一步,将0.45乘以2,得0.9,则整数部分为0,小数部分为0.9;
第二步, 将小数部分0.9乘以2,得1.8,则整数部分为1,小数部分为0.8;
第三步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;
第四步, 将小数部分0.6乘以2,得1.2,则整数部分为1,小数部分为0.2; 算到这一步就可以了,因为只需要保留四位小数
第五步, 将小数部分0.2乘以2,得0.4,则整数部分为0,小数部分为0.4;
第六步, 将小数部分0.4乘以2,得0.8,则整数部分为0,小数部分为0.8;后面会一直循环重复
第七步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;

。。。。。。
读整数不分,从第一位读起,读到最后一位,即为0.0111。

 

3、二进制转十进制

方法为:把二进制数按权展开、相加即得十进制数。

 

三、二进制与八进制之间的转换

1、二进制转八进制

方法为:2的三次方等于8,因此3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。

2、八进制转成二进制

方法为:八进制数通过除2取余法,得到二进制数,把每个八进制数转换为3个二进制,不足时在最左边补零。

 

四、二进制与十六进制之间的转换

1、二进制转十六进制

方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(2的四次方等于16,4位二进制转成十六进制是从右到左开始转换,不足时补0)。

 

 

2、十六进制转二进制

方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制数转换为4个二进制,不足时在最左边补零。

 

五、十进制与八进制与十六进制之间的转换

1、十进制转八进制或者十六进制有两种方法

第一:间接法:把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。

 

 

第二:直接法:把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止

 

2、八进制或者十六进制转成十进制

方法为:把八进制、十六进制数按权展开、相加即得十进制数。

 

六、十六进制与八进制之间的转换

八进制与十六进制之间的转换有两种方法

第一种:他们之间的转换可以先转成二进制然后再相互转换。

第二种:他们之间的转换可以先转成十进制然后再相互转换。

 

七、总结

1、十进制转换成二、八、十六进制

十进制转二进制(正整数)
正整数:十进制数除2取余法,读数要倒叙读。
小数:小数乘2取整法,读数要顺序读。

十进制转八进制
十进制数除8取余法,读数要倒叙读。

十进制转十六进制
十进制数除16取余法,读数要倒叙读。

 

2、二、八、十六进制转十进制

把各个进制数按权展开、相加即得十进制数。
注意:
二进制的权是     2的0、1、2、3...次幂
八进制的权是     8的0、1、2、3...次幂
十六进制的权是 16的0、1、2、3...次幂

 

3、二进制转换成八、十六进制

二进制转八进制
2的三次方等于8,因此3位二进制数按权展开相加得到1位八进制数,3位二进制转成八进制是从右到左开始转换,不足时补0。


二进制转十六进制
2的四次方等于16,因此4位二进制数按权展开相加得到1位十六进制数,4位二进制转成十六进制是从右到左开始转换,不足时补0。

 

4、八、十六进制转成二进制

八进制转二进制
将每一位八进制数通过除2取余法,得到二进制数,对每个八进制数转换为3个二进制,不足时在最左边补零。


十六进制转二进制
将每一位十六进制数通过除2取余法,得到二进制数,对每个十六进制数转换为4个二进制,不足时在最左边补零。

 

八、字节单位之间的换算

位(bit,缩写为b)是存储器的最小单位,可以表示一位二进制数。1字节(Byte,缩写为B)由8个位组成,即1Byte=8bit,是存储器的基本单位,通常被作为一个存储单元。通常情况下,把B称为字节、b称为字位、KB称为千字节、MB称为兆字节、GB称为吉字节。

 

1字位(bit)=1个二进制数

1字节(Byte)=8字位=8个二进制数

1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB

 

 

 

posted @ 2019-05-22 14:34  我用python写Bug  阅读(10424)  评论(0编辑  收藏  举报