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 dict remove数组删除(del,pop)
Mar 24 Python
Python中利用sorted()函数排序的简单教程
Apr 27 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python实现学生成绩管理系统
Apr 05 Python
python如何实现内容写在图片上
Mar 23 Python
python散点图实例之随机漫步
Aug 27 Python
Django实现发送邮件功能
Jul 18 Python
深入浅析python的第三方库pandas
Feb 13 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
python中scipy.stats产生随机数实例讲解
Feb 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
php批量删除数据
2007/01/18 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
javascript json2 使用方法
2010/03/16 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
详解Python的三种拷贝方式
2020/02/11 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
电大自我鉴定
2013/10/27 职场文书
初一学生期末评语
2014/04/24 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
七年级地理教学计划
2015/01/22 职场文书
销售业务员岗位职责
2015/02/13 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
正规借条模板
2015/05/26 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书