二进制十进制相互转换

来源:互联网 发布:淘宝卖家会员卡设置 编辑:程序博客网 时间:2024/05/18 00:48

1)十进制(整数)->二进制

概念:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

用2辗转相除至结果为1  
将最后的1和余数从下向上倒序写 就是结果

例程:208

208/2 = 104余0

104/2=52余0

52/2=26余0

26/2=13余0

13/2=6余1

6/2=3余0

3/2=1余1

故十进制208的二进制结果为:11010000


2)十进制(小数)->二进制

概念:十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。

具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。  
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

例程:0.625

(0.625)10= (0.101)2  

0.625  X 2  = 1.25取1

0.25  X 2  = 0.5取0

0.5  X 2  = 1.0取1

故十进制0.625的二进制结果为:0.101


3)二进制->十进制

概念:由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 

从最后一位开始算,依次列为第0、1、2...位  第n位的数(0或1)乘以2的n次方,得到的结果相加就是答案

例程:100101110  

0*(2的0次方)=0

1*(2的1次方)=2

1*(2的2次方)=4

1*(2的3次方)=8

0*(2的4次方)=0

1*(2的5次方)=32

0*(2的6次方)=0

0*(2的7次方)=0

1*(2的8次方)=256

故二进制100101110 的十进制结果为:256+32+8+4+2=302



0 0
原创粉丝点击