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 相关文章推荐
在Django的视图中使用数据库查询的方法
Jul 16 Python
Python sqlite3事务处理方法实例分析
Jun 19 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
详解python之heapq模块及排序操作
Apr 04 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Python pickle模块常用方法代码实例
Oct 10 Python
Python try except finally资源回收的实现
Jan 25 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 的几个配置文件函数
2006/12/21 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
PHP 强制下载文件代码
2010/10/24 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python reduce()函数的用法小结
2017/11/15 Python
python实现决策树分类算法
2017/12/21 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
员工培训邀请函
2014/01/11 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
同意落户证明
2015/06/19 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
vue前端工程的搭建
2021/03/31 Vue.js