x>1的带小数位十进制数转换为二进制的方法咨询
十进制带小数(x>1)转二进制的解决方法
你提到的拆分为多个小于1的数值分别转换再求和的思路逻辑上是成立的,但操作繁琐容易出错,更高效的通用方案是拆分整数、小数部分分别转换后合并,下面用70.5作为示例演示操作流程:
步骤1:拆分整数与小数部分
把待转换的数值拆为纯整数+纯小数两部分,70.5拆分后得到整数部分70,小数部分0.5。
步骤2:转换整数部分为二进制
用你已经掌握的除2取余法计算即可:
- 70 ÷ 2 = 35 余 0
- 35 ÷ 2 = 17 余 1
- 17 ÷ 2 = 8 余 1
- 8 ÷ 2 = 4 余 0
- 4 ÷ 2 = 2 余 0
- 2 ÷ 2 = 1 余 0
- 1 ÷ 2 = 0 余 1
余数倒序排列得到整数部分二进制结果:1000110
步骤3:转换小数部分为二进制
用你已经掌握的乘2取整法计算即可:
- 0.5 × 2 = 1.0,取整数部分1,剩余小数部分为0,停止计算
得到小数部分二进制结果:1
步骤4:合并结果
整数部分和小数部分用小数点连接,最终70.5的二进制转换结果为1000110.1
补充注意:如果小数部分乘2后长期无法清零,按照作业要求的精度保留对应位数即可,比如要求保留4位小数就计算到第4位停止。
内容的提问来源于stack exchange,提问作者Zebraboard
相关产品推荐
相关产品推荐

