求教如何Python十进制小数和二进制小数相互转换的实现方式,用代码表示出来,谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教如何Python十进制小数和二进制小数相互转换的实现方式,用代码表示出来,谢谢相关的知识,希望对你有一定的参考价值。

参考技术A

    从二进制转换为十进制有几种方式第一种是在二进制数前加上0b,显示时会自动转换为十进制,注意这并不是字符串
    x
    =
    0b1010print(x)
    如果是字符串可以利用eval求值
    x
    =
    eval('0b1010')
    第二种是利用int函数,字符串可以以0b为前缀,也可以不使用
    int('1010',base=2)int('0b1010',2)
    函数会将输入base进制的字符串转换为十进制

参考技术B print(bin2dec(dec2bin(0.8125))) # 0.8125 以上就是Python十进制小数和二进制小数相互转换的实现方式的详细内容, 参考技术C 2017年10月12日二进制小数 ⇒ 十进制小数 小数点后,从左向右,每位分别表示 def bin2dec(b): d = 0 for i, x in enumerate(b): d += 2**(-... 参考技术D 第4项和前项有密切的关联,以前我们容易把精确的数学计算当作唯一一种做需求预测的手段,虽然我们可以利用精确的数学计算手段 第5个回答  2021-11-15 这个代码可以在相关的社区中查看即可。

带小数的十进制数字和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

以上是关于求教如何Python十进制小数和二进制小数相互转换的实现方式,用代码表示出来,谢谢的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

进制转换规则

小数在内存中是如何存储的?

小时转换成小数点