... ...
Part 2:
十进制小数与二进制转换(8 bit 3/5):3.65D
法一 From书 1)整数部分二进制转换:3 -> 011
2)小数部分二进制转换(乘2取余法):
0.65*2 = 0.3+取出1 = 0.6+取出0 = 0.2 +取出1 = 0.4 + 取出0 =
= 0.8+ 取出0 = ... ...
8-6-2-4 无限循环,根据5bit原则,这里只能去5位:10100
3)合并整数和小数部分,于是3.65即 0111 0100B
法二 猜想 1)3.65* 2^5 = 116.8D
2)116.8D下取整为116D (注:与方法一无限循环小数取舍对应)
3)116D 转化为二进制 0111 0100B
再分别用方法一二计算4.25
方法一 1)4 -> 100B 2) 0.25 -> 01B 3)100 01 000(注:整合规则及右侧补0)
方法二 1)4.25*2^5 = 136D = 1000 1000
综述:方法一适合小数位数不固定,方法二适合小数位数固定时的情况,
两种方法自己体会吧。
转载于:https://blog.51cto.com/zcreation/865015