天天看点

转:十进制小数, 二进制小数互转

转:http://ks.cn.yahoo.com/question/1406020600544.html

十进制转换为二进制
除二取余(整数部分),乘二取整(小数部分)

除二取余:把十进制整数除以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 ( 第一次所得到为最高位,最后一次得到为最低位)      

---------------------------------------------------

二进制转十进制:http://zhidao.baidu.com/question/37804425.html?fr=qrl&cid=197&index=5

用权,比如 1011.101

1 x pow(2,3) + 0 x pow(2,2) + 1 x pow(2,1) + 1 x pow(2,0) + 1 x pow(2,-1) + 0 x pow(2,-2) + 1 x pow(2,-3)

加权可得,二进制的权值分别为2的0次,2的1次……2的-1次,2的-2次……,比如:
111.11=1*4+1*2+1*1+1*1/2+1*1/4=7.75       

继续阅读