带小数的十进制数字和2进制数字相互转换的逻辑

Posted fcelebrity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带小数的十进制数字和2进制数字相互转换的逻辑相关的知识,希望对你有一定的参考价值。

不同进制是指不同位置上数字对应的权值不同。

2进制对应的权值是以2为底的指数20,21....等

1001001转换为十进制的话是1+8+64=73

从10进制向2进制转换:

整数部分“除2取余”,小数部分“乘2取余”

 

乘二取整是针对十进制小数部分转换为二进制的方法,而整数部分为除二取余,具体如下:

  1. 将整数部分辗转相除2,将余数倒序排列,即整数部分的二进制数

  2. 将小数部分辗转相乘2,将乘积的个位数部分正序排列,即小数部分的二进制数

 

例:

将32.12转换为二进制数

整数部分:

32÷2=16余0

16÷2=8余0

8÷2=4余0

4÷2=2余0

2÷2=1余0

1÷2=0余1

将余数倒序排列,为10 0000

小数部分:

0.12×2=0.24(个位0)

0.24×2=0.48(个位0)

0.48×2=0.96(个位0)

0.96×2=1.92(后续运算只取小数部分进行,若出现个位数,则对应的二进制位数为1)

0.92×2=1.84(个位1)

0.84×2=1.68(个位1)

0.68×2=1.36(个位1)

接下来可以无限计算下去,取约数,小数部分为0.0001111

所以32.12D=10 0000.0001111

以上是关于带小数的十进制数字和2进制数字相互转换的逻辑的主要内容,如果未能解决你的问题,请参考以下文章

数字逻辑8421BCD码换成十进制和二进制数

二进制,八进制,十进制,十六进制之间的相互转换

进制转换之非十进制数之间相互转换

二进制八进制十进制十六进制之间的相互转换

二进制和十进制的相互转换

C语言中字符串和整数小数相互转换的函数以及头文件