十进制小数如何转换为二进制,请详细举例.
十进制转换为二进制
1除二取余(整数部分),乘二取整(小数部分)
除二取余:把十进制整数除以2得到商和余数,在将所得到的商除以2,又得到新的商和余数,这样不断的用二去除商,直到商为0为止.
每次除的的余数便是相应的二进制数码.最先得到的是最的有效位,最后得到的是最高有效位.
如:11的二进制
11/2=5--1
5/2=2--1
2/2=1--0
1/2=0--1
//是整除,即二进制位 1011(从后面开始往上读,高位低位的问题)
乘二取整:
对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
如:0.25的二进制
0.25*2=0.5
0.5*2=1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)
十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
【例1108】把(0.8125)转换为二进制小数。
解:
例1109 (173.8125)10=( )2
解: 由[例1107]得(173)10=(***********)2
由[例1108]得(0.8125)10=(0.1101)2
把整数部分和小数部分合并得: (173.8125)10=(***********.1101)2
要将整数部分和小数部分分开运算。整数来看的话:23/2商11余1, 11/2商5余1,5/2商2余1,2/2商1余0,1/2商0余1(直到商为0为止)。将余数倒着写即10111 为整数部分,小数部分同理,再在整数与小数之间加上小数点即可。