本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:

我终于写完了 , 十进制转二进制的小数部分卡了我将近一个小时

上代码

#-*- coding: utf-8

from decimal import Decimal

def bTod(n, pre=4):

'''

把一个带小数的二进制数n转换成十进制

小数点后面保留pre位小数

'''

string_number1 = str(n) #number1 表示二进制数,number2表示十进制数

decimal = 0 #小数部分化成二进制后的值

flag = False

for i in string_number1: #判断是否含小数部分

if i == '.':

flag = True

break

if flag: #若二进制数含有小数部分

string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分

for i in range(len(string_decimal)):

decimal += 2**(-i-1)*int(string_decimal[i]) #小数部分化成二进制

number2 = int(str(int(string_integer, 2))) + decimal

return round(number2, pre)

else: #若二进制数只有整数部分

return int(string_number1, 2)#若只有整数部分 直接一行代码二进制转十进制 python还是骚

def dTob(n, pre=4):

'''

把一个带小数的十进制数n转换成二进制

小数点后面保留pre位小数

'''

string_number1 = str(n) #number1 表示十进制数,number2表示二进制数

flag = False

for i in string_number1: #判断是否含小数部分

if i == '.':

flag = True

break

if flag:

string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分

integer = int(string_integer)

decimal = Decimal(str(n)) - integer

l1 = [0,1]

l2 = []

decimal_convert = ""

while True:

if integer == 0: break

x,y = divmod(integer, 2) #x为商,y为余数

l2.append(y)

integer = x

string_integer = ''.join([str(j) for j in l2[::-1]]) #整数部分转换成二进制

i = 0

while decimal != 0 and i < pre:

result = int(decimal * 2)

decimal = decimal * 2 - result

decimal_convert = decimal_convert + str(result)

i = i + 1

string_number2 = string_integer + '.' + decimal_convert

return float(string_number2)

else: #若十进制只有整数部分

l1 = [0,1]

l2 = []

while True:

if n == 0: break

x,y = divmod(n, 2) #x为商,y为余数

l2.append(y)

n = x

string_number = ''.join([str(j) for j in l2[::-1]])

return int(string_number)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python十进制小数转二进制_python十进制和二进制的转换方法(含浮点数)相关推荐

  1. [转载] python怎么将十进制转换为二进制_python十进制和二进制的转换方法(含浮点数)

    参考链接: Python中的十进制函数 1 本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下: 我终于写完了 , 十进制转二进制的小数部分卡了我将近一 ...

  2. python十进制小数转二进制_python十进制和二进制的转换 (含浮点数)

    1 #-*- coding: utf-8 2 from decimal importDecimal3 def bTod(n, pre=4):4 ''' 5 把一个带小数的二进制数n转换成十进制6 小数 ...

  3. python语言十进制转二进制_python十进制转二进制的详解

    python十进制转二进制 python中十进制转二进制使用 bin() 函数. bin() 返回一个整数 int 或者长整数 long int 的二进制表示. 下面是使用示例: >>&g ...

  4. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  5. python十进制转二进制循环_python十进制转二进制的详解

    python十进制转二进制 python中十进制转二进制使用 bin() 函数. bin() 返回一个整数 int 或者长整数 long int 的二进制表示. 下面是使用示例: >>&g ...

  6. 用位运算将十进制转为二进制python_python 十进制与二进制以及位运算

    在python2.6以上的版本中自带了将十进制转化为二进制的函数bin(). 看一下bin.__doc__怎么说的. >>>print bin.__doc__ bin(number) ...

  7. c++二进制转十进制_二进制,八进制,十进制,十六进制转换详解~

    点 击 上 方 蓝 字 关 注 我 们 哦 ^-^ 本文思维导图: 1.数制:用一组固定的数字和一套统一的规则来表示数目的方法称为数制. 进位计数制的要素: ①.数码:用来表示进制数的元素. 二进制: ...

  8. python十进制小数转二进制小数_python将小数转化为二进制_Python实现的十进制小数与二进制小数相互转换功能...

    本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能.分享给大家供大家参考,具体如下: 十进制小数 ⇒ 二进制小数 乘2取整 对十进制小数乘2得到的整数部分和小数部分, 整数部分即是相应 ...

  9. python八进制转二进制_python中的二进制十六进制和八进制

    python八进制转二进制 Python is known for being powerful and easy to use when it comes to math. Both its nat ...

最新文章

  1. 互联网广告综述之点击率特征工程
  2. 《探索需求》阅读笔记1
  3. 视频编解码,bbv 缓冲区的上溢和下溢
  4. 微服务治理实践:如何对单点异常进行自动摘除
  5. 认识和学习orchestrator之基本使用篇
  6. 主板找不到SSD解决一例
  7. Git XP 安装图解
  8. 仙侣情缘之麒麟劫java_《仙侣情缘之麒麟劫》详细流程攻略[多图]
  9. Tomcat做成系统服务
  10. Android N开发 你需要知道的一切
  11. 正则表达式的用法和常用正则表达式大全(转)
  12. LineRenderer组件
  13. 屏幕的背光是什么呢?
  14. 关于RDP协议的分析(一)
  15. 开源企业软件采购指南
  16. Linux - top命令详解
  17. 35 行代码实现一个简单的 shell
  18. 微信小程序wx.getUserProfile接口的使用
  19. ORACLE等待事件:read by other session
  20. linux 进程 锁定cpu,如何限制Linux中任何进程的CPU使用情况 | MOS86

热门文章

  1. python tk 当输入数值错误是报错_Python的异常处理
  2. python怎么引用已经输入的信息_如何将用户输入存储在python中,然后调用它?
  3. c++ fork 进程时 共享内存_linux共享内存mmap
  4. python网站开发实例视频_Python实战-让在职教育类网站的视频全自动播放
  5. 2021-9-下旬 数据结构-线性表- 栈 -java代码实现(复习用)
  6. 一天搞定HTML----标签类型与类型转换05
  7. oracle 错误: ORA-12899:始终提示字段太大
  8. nivicat复制mysql数据库[Err] [Dtf] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'错误
  9. 操蛋的linux改mysql密码(1054和1819错误)
  10. Spring 整合Struts2