求教如何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进制的字符串转换为十进制
带小数的十进制数字和2进制数字相互转换的逻辑
不同进制是指不同位置上数字对应的权值不同。
2进制对应的权值是以2为底的指数20,21....等
1001001转换为十进制的话是1+8+64=73
从10进制向2进制转换:
整数部分“除2取余”,小数部分“乘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十进制小数和二进制小数相互转换的实现方式,用代码表示出来,谢谢的主要内容,如果未能解决你的问题,请参考以下文章