python十进制转二进制的详解


Posted in Python onFebruary 07, 2020

python十进制转二进制

python中十进制转二进制使用 bin() 函数。

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

下面是使用示例:

>>>bin(10)

'0b1010'

>>> bin(20)

'0b10100'

补充:十进制转8进制和16进制的方法:

# -*- coding: UTF-8 -*-

 

# 获取用户输入十进制数

dec = int(input("输入数字:"))

 

print("转换为八进制为:", oct(dec))

print("转换为十六进制为:", hex(dec))

内容扩展:

#-*- 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实现分割文件及合并文件的方法
Jul 10 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
详解Python3 基本数据类型
Apr 19 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
Python读取yaml文件的详细教程
Jul 21 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
深入探讨opencv图像矫正算法实战
May 21 Python
python 字典和列表嵌套用法详解
Jun 29 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 #Python
python实现ip地址的包含关系判断
Feb 07 #Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 #Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 #Python
Python continue语句实例用法
Feb 06 #Python
Tensorflow限制CPU个数实例
Feb 06 #Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 #Python
You might like
smarty基础之拼接字符串的详解
2013/06/18 PHP
php的ajax简单实例
2014/02/27 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[05:05]第三天的dota2
2013/07/29 DOTA
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
python的pstuil模块使用方法总结
2019/07/26 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
创业资金计划书
2014/02/06 职场文书
学校创先争优活动总结
2014/08/28 职场文书
总经理检讨书范文
2015/02/16 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书