精华内容
下载资源
问答
  • 本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数 ⇒ 二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用...

    本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:

    十进制小数 ⇒ 二进制小数

    乘2取整

    对十进制小数乘2得到的整数部分和小数部分,

    整数部分即是相应的二进制数码,

    再用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]

    二进制小数 ⇒ 十进制小数

    小数点后,从左向右,每位分别表示

    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

    PS:这里再为大家推荐几款计算与转换工具供大家参考使用:

    在线任意进制转换工具:http://tools.ddpool.cn/transcoding/hexconvert

    科学计算器在线使用_高级计算器在线计算:http://tools.ddpool.cn/jisuanqi/jsqkexue

    在线计算器_标准计算器:http://tools.ddpool.cn/jisuanqi/jsq

    希望本文所述对大家Python程序设计有所帮助。

    展开全文
  • 主要介绍了Python二进制文件读取并转换为浮点数详解,用python读取二进制文件,这里主要用到struct包,而这个包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以参考下
  • 主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下
  • 怎么用python二进制转换十进制

    千次阅读 2020-11-26 03:00:07
    绒绒小梧桐2020-02-24 10:13:41二进制十进制,十进制二进制的算法十进制二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写 就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余...

    绒绒小梧桐

    TB10fDzdND1gK0jSZFsXXbldVXa-36-32.png

    2020-02-24 10:13:41

    二进制转十进制,十进制转二进制的算法

    十进制转二进制:

    用2辗转相除至结果为1

    将余数和最后的1从下向上倒序写 就是结果

    例如302

    302/2 = 151 余0

    151/2 = 75 余1

    75/2 = 37 余1

    37/2 = 18 余1

    18/2 = 9 余0

    9/2 = 4 余1

    4/2 = 2 余0

    2/2 = 1 余0

    故二进制为100101110

    二进制转十进制

    从最后一位开始算,依次列为第0、1、2...位

    第n位的数(0或1)乘以2的n次方

    得到的结果相加就是答案

    例如:01101011.转十进制:

    第0位:1乘2的0次方=1

    1乘2的1次方=2

    0乘2的2次方=0

    1乘2的3次方=8

    0乘2的4次方=0

    1乘2的5次方=32

    1乘2的6次方=64

    0乘2的7次方=0

    然后:1+2+0

    +8+0+32+64+0=107.

    二进制01101011=十进制107.

    一、二进制数转换成十进制数

    由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。

    二、十进制数转换为二进制数

    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

    1. 十进制整数转换为二进制整数

    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

    2.十进制小数转换为二进制小数

    十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    回答者:HackerKinsn - 试用期 一级 2-24 13:31

    1.二进制与十进制的转换

    (1)二进制转十进制

    方法:"按权展开求和"

    例:

    (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

    =(8+0+2+1+0+0.25)10

    =(11.25)10

    (2)十进制转二进制

    · 十进制整数转二进制数:"除以2取余,逆序输出"

    例: (89)10=(1011001)2

    2 89

    2 44 …… 1

    2 22 …… 0

    2 11 …… 0

    2 5 …… 1

    2 2 …… 1

    2 1 …… 0

    0 …… 1

    · 十进制小数转二进制数:"乘以2取整,顺序输出"

    例:

    (0.625)10= (0.101)2

    0.625

    X 2

    1.25

    X 2

    0.5

    X 2

    1.0

    2.八进制与二进制的转换

    例:将八进制的37.416转换成二进制数:

    37 . 4 1 6

    011 111 .100 001 110

    即:(37.416)8 =(11111.10000111)2

    例:将二进制的10110.0011 转换成八进制:

    0 1 0 1 1 0 . 0 0 1 1 0 0

    2 6 . 1 4

    即:(10110.011)2 =(26.14)8

    3.十六进制与二进制的转换

    例:将十六进制数5DF.9 转换成二进制:

    5 D F . 9

    0101 1101 1111.1001

    即:(5DF.9)16 =(10111011111.1001)2

    例:将二进制数1100001.111 转换成十六进制:

    0110 0001 . 1110

    6 1 . E

    即:(1100001.111)2 =(61.E)16

    展开全文
  • n=int(input()) a=[] while n!=0: a.insert(0,n%2) n//=2 for i in a: i=str print("{:08b}".i,end="")
  • 匿名用户1级2017-11-28 回答#首先说明一点,python有现成的函数可以干这个,只不过这个位数不会按照你想要的位数输出而已#这些函数是bin(),hex(),oct(),这些函数自己去看它的源码实现。#个人写的如下defaddone(mods)...

    匿名用户

    1级

    2017-11-28 回答

    #首先说明一点,python有现成的函数可以干这个,只不过这个位数不会按照你想要的位数输出而已

    #这些函数是 bin(), hex(), oct(),这些函数自己去看它的源码实现。

    #个人写的如下

    def addone(mods):

    assert isinstance(mods,list)

    tmods = mods.copy()

    if tmods:

    if tmods[0] == 0:

    tmods[0] = 1

    return(tmods)

    else:

    return([0] + addone(tmods[1:]))

    return([])

    hexmap = {

    "0000": "0",

    "0001": "1",

    "0010": "2",

    "0011": "3",

    "0100": "4",

    "0101": "5",

    "0110": "6",

    "0111": "7",

    "1000": "8",

    "1001": "9",

    "1010": "A",

    "1011": "B",

    "1100": "C",

    "1101": "D",

    "1110": "E",

    "1111": "F",

    }

    def convertToBinary(num, site=64):

    assert -2**(site - 1) <= num 

    mod = []

    quotient = abs(num)

    if quotient == 0:

    mod = [0]

    else:

    while quotient:

    mod.append(quotient % 2)

    quotient = quotient // 2

    mod += [0]*(site - len(mod) - 1)

    #if negative

    if num 

    #not

    mod = [ 0 if i else 1 for i in mod ]

    #add 1

    mod = addone(mod)

    #add sign

    mod += [1]

    else:

    mod += [0]

    return("".join([str(i) for i in reversed(mod)]))

    def convertToHex(code):

    clen = len(code)

    mod = clen % 4

    if mod != 0:

    if code[0] == 0:

    code = "0" * (4 - mod) + code

    else:

    code = "1" * (4 - mod) + code

    out = []

    for i in range(0,len(code),4):

    out.append(hexmap[code[i:i+4]])

    return("".join(out))

    #convertToBinary(33,16)

    #'0000000000100001'

    #convertToHex(convertToBinary(-33,64))

    #'FFFFFFFFFFFFFFDF'

    #convertToHex("1110001")

    #'F1'

    展开全文
  • 1、十进制二进制之间的转换(1)、十进制转换为二进制,分为整数部分和小数部分整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数。这个步骤一直...

    1、十进制 与 二进制之间的转换

    (1)、十进制转换为二进制,分为整数部分和小数部分

    整数部分

    9b801f123fc8

    方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数。

    这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例:

    例:将十进制的168转换为二进制

    得出结果 将十进制的168转换为二进制,(10101000)2

    168 / 2 = 84 -- 0

    84 / 2 = 42 -- 0

    42 / 2 = 21 -- 0

    21 / 2 = 10 -- 1

    10 / 2 = 5 -- 0

    5 / 2 = 2 -- 1

    2 / 2 = 1 -- 0

    1 / 2 = 0 -- 1

    二进制(从后往前读): 10101000

    9b801f123fc8

    小数部分

    方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,

    剩下的小数部分又乘以2,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,

    按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。

    换句话说就是0舍1入。读数要从前面的整数读到后面的整数

    二进制转换为十进制 (不分整数和小数部分)

    方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。

    9b801f123fc8

    例:将二进制数101.101转换为十进制数。

    得出结果:(101.101)2=(5.625)10

    在做二进制转换成十进制需要注意的是

    1)要知道二进制每位的权值

    2)要能求出每位的值 101.101 转换为十进制

    整数部分:2^2 + 2^0 = 5

    小数部分:2^(-1) + 2^(-3) = 1/2 + 1/8 = 0.5 + 0.125 = 0.625

    十进制: 2^2 + 2^0 + 2^(-1) + 2^(-3) = 5.625

    本文首发于python黑洞网,简书同步更新

    展开全文
  • #二进制转化成十六进制print("请输入一个二进制数\n")SUM1=[]SUM2=[]A=0B=0int1=[]#整数部分存放处float1=[]#小数部分存放处a1=int(input("请输入二进制的整数部分"))print("a1=",a1)#整数部分a2=input("请输入...
  • Python:运行时警告:溢出遇到平方,加,乘,减问I'm beginning with Python so I might be asking a not so subtle question, but after quite a lot of research I couldn't resolve this error. I'm actually ...
  • 本文介绍了python十进制二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:我终于写完了 , 十进制二进制的小数部分卡了我将近一个小时上代码#-*- coding: utf-8from decimal import ...
  • 其实这是非常简单的,这个就像小学学习数学乘法口诀意义,只要记住转换口诀即可轻松应用,一起来看下具体的操作内容吧~一、python进制转换dec(十进制)—> bin(二进制)dec(十进制)—> oct(八进制)dec(十进制...
  • # convert a decimal (denary, base 10) integer to a binary string (base 2)# tested with Python24 vegaseat 6/1/2005def Denary2Binary(n):"""convert denary integer n to binary string b...
  • python 十进制二进制

    万次阅读 多人点赞 2019-06-24 16:55:42
    python 十进制转2进制有内置函数 bin 方法1: in:bin(1) output:'0b1' 方法2: n = int(input('请输入要转换进制的数值:')) # x = 2 # 转换为二进制,所以这里取x=2 b = [] # 存储余数 while True: # ...
  • python十进制二进制的方法

    千次阅读 2021-09-28 08:27:53
    介绍2种十进制二进制的方法: 1、直接用转换函数 m=bin(a) print(m) # 二进制 2、先把计算出来的二进制数列用字符串存储起来,然后再反向输出此字符串: a=eval(input('请您输入十进制数:')) m='' while a&...
  • 好的,首先在这里发帖,如果问题不可行,请原谅并忽略背景:我是计算机科学160。...提示是读取只包含1和0的整数,逐位处理二进制数并报告十进制等效值。现在,我从一个同学那里得到了一些提示,这至少...
  • python二进制转换,python将十进制转为二进制,题目描述:输入一个整题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。分析:python没有unsignedint类型>>>print("%x"%0xFFFFFFFF...
  • python十进制二进制的详解发布时间:2020-09-16 11:46:35来源:脚本之家阅读:105作者:Vpython十进制二进制python十进制二进制使用 bin() 函数。bin() 返回一个整数 int 或者长整数 long int 的二进制表示...
  • Python二进制十进制之间的转换

    千次阅读 2020-06-26 15:38:51
    十进制整数转化为二进制–bin() ...二进制转为为十进制 x = 0b11 print(x) 输出结果为: 3 如果给定的二进制数是字符串的形式,将其转为十进制 x = "1010" print(int(x, 2)) 输出结果为: 10 ...
  • 计算机运算会用到四种进制方法:二进制、八进制、十进制、十六进制。四者之间的转换在python是非常简单的,因为python默认自带的函数已经帮我们实现了。具体示例如下:>>> hex(10)'0xa'>>> oct(8)'010'>>> oct(10)'...
  • python2.6以上的版本中自带了将十进制转化为二进制的函数bin()。看一下bin.__doc__怎么说的。>>>print bin.__doc__bin(number) -> stringreturn the binary represiontation of an integer or long ...
  • python十进制二进制,可指定位数

    千次阅读 2021-01-12 08:41:19
    # convert a decimal (denary, base 10) integer to a binary string (base 2)# tested with Python24 vegaseat 6/1/2005def Denary2Binary(n):'''convert denary integer n to binary string bStr'''bStr = ''...
  • 使用内置函数实现进制转换...二进制十进制使用函数:int()实例:123#结果是4int('100',2)注意:上述一定不要忘记加引号,因为二进制是一个字符串如果不加引号会出现如下错误:Traceback (most recent call last):...
  • python二进制文件转十进制

    千次阅读 2017-10-21 19:42:12
    python文件操作,二进制十进制,附代码
  • 如下的内容内容是关于Python进制相互转换(二进制十进制和十六进制)的内容,希望对各位朋友有用。#!/usr/bin/env python# 2/10/16 base trans. wrote by srcdog on 20th, April, 2009# ld elements in base 2, 10...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,067
精华内容 3,626
关键字:

python二进制转为十进制

python 订阅