我们常见的是纯整数十进制转二进制,而对小数部分的转换不常提及。以下帮助大家梳理
(xxx.yyy)10xxx为整数部分,yyy为小数部分
(xxx.yyy)_{10}\\
xxx为整数部分,yyy为小数部分
(xxx.yyy)10xxx为整数部分,yyy为小数部分
核心思想:将整数和小数部分分开计算,最后整合。
- 对于整数:除二逆向取余
- 对于小数部分:乘二正向(向下)取整
(一)整数部分
以34举例

图中每个小箭头代表一次除2
34=17x2+0
17=8x2+1
…以此类推
最后逆向读出。故(34)10(34)_{10}(34)10=(100010)2(100010)_2(100010)2
(二)小数部分
以0.625举例

图中每个小箭头代表两个操作:
A→\rightarrow→B
- Ax2
- B= A-⌊A⌋\lfloor A \rfloor⌊A⌋
0.25=0.625*2=1.25-⌊1.25⌋\lfloor 1.25 \rfloor⌊1.25⌋ =0.25 (⌊1.25⌋\lfloor 1.25 \rfloor⌊1.25⌋=1)
0.5=0.25*2=0.5-⌊0.5⌋\lfloor {0.5} \rfloor⌊0.5⌋=0.5(⌊0.5⌋\lfloor {0.5} \rfloor⌊0.5⌋=0)
最后正向读出。故(0.625)10=(.101)2(0.625)_{10}=(.101)_2(0.625)10=(.101)2
若嫌式子过于复杂,可以这么记忆:
小数部分乘2,若>1,则减去1,在旁边记录下1;
若小于1,则无需减去1,在旁边记录下0;
使其一直为0.xx的形式,如此往复
特别的:小数部分转二进制可能会出现乘不尽,一直不能化为0。此时根据题目要求的精度来决定要多少位二进制即可。
整合
那么34.625的二进制表述就是将其拼接起来
(34.625)10=(100010.101)2(34.625)_{10}=(100010.101)2(34.625)10=(100010.101)2
本文详细介绍了如何将十进制数的整数部分和小数部分分别转换为二进制,通过实例演示了除二逆向取余法和乘二正向取整法,包括34和0.625的转换过程,并提示了处理无限循环小数的方法及最终整合步骤。
9850

被折叠的 条评论
为什么被折叠?



