源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python实现的十进制小数与二进制小数相互转换功能

  • 时间:2021-03-09 13:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python实现的十进制小数与二进制小数相互转换功能
本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下: [b]十进制小数 ⇒ 二进制小数[/b] [b]乘2取整[/b] 对十进制小数乘2得到的[b]整数部分[/b]和[b]小数部分[/b], 整数部分即是相应的二进制数码, 再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。 如此不断重复,直到小数部分为0或达到精度要求为止. 第一次所得到为最高位,最后一次得到为最低位 如: 0.25的二进制 0.25*2=0.5   取整是0 0.5*2=1.0     取整是1 即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位) 0.8125的二进制 0.8125*2=1.625  取整是1 0.625*2=1.25      取整是1 0.25*2=0.5          取整是0 0.5*2=1.0            取整是1 即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
def dec2bin(x):
  x -= int(x)
  bins = []
  while x:
    x *= 2
    bins.append(1 if x>=1. else 0)
    x -= int(x)
  return bins
print(dec2bin(.8125))
      # [1, 1, 0, 1]

[b]二进制小数 ⇒ 十进制小数[/b] 小数点后,从左向右,每位分别表示 [img]http://files.jb51.net/file_images/article/201710/20171012101716611.jpg?2017912101734[/img]
def bin2dec(b):
  d = 0
  for i, x in enumerate(b):
    d += 2**(-i-1)*x
  return d
print(dec2bin(0.8125))
        # [1, 1, 0, 1]
print(bin2dec(dec2bin(0.8125)))
        # 0.8125
[b]PS:这里再为大家推荐几款计算与转换工具供大家参考使用:[/b] [b]在线任意进制转换工具: [/b][url=http://tools.jb51.net/transcoding/hexconvert]http://tools.jb51.net/transcoding/hexconvert[/url] [b]科学计算器在线使用_高级计算器在线计算: [/b][url=http://tools.jb51.net/jisuanqi/jsqkexue]http://tools.jb51.net/jisuanqi/jsqkexue[/url] [b]在线计算器_标准计算器: [/b][url=http://tools.jb51.net/jisuanqi/jsq]http://tools.jb51.net/jisuanqi/jsq[/url] 更多关于Python相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/942.htm]Python数学运算技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/663.htm]Python数据结构与算法教程[/url]》、《[url=http://www.1sucai.cn/Special/642.htm]Python函数使用技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/636.htm]Python字符串操作技巧汇总[/url]》、《[url=http://www.1sucai.cn/Special/520.htm]Python入门与进阶经典教程[/url]》及《[url=http://www.1sucai.cn/Special/516.htm]Python文件与目录操作技巧汇总[/url]》 希望本文所述对大家Python程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部