Python实现十进制和二进制之间相互转换

Posted ddpeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现十进制和二进制之间相互转换相关的知识,希望对你有一定的参考价值。

十进制转二进制

  • 原理:采用除2取余,逆序排列输出。
  • 实现:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后依次翻转排序即可得到二进制数,在Python中我们采”//”(地板除)的方法实现转换
# 十进制整数转二进制
def decToBin(num):
    arry = []   #定义一个空数组,用于存放2整除后的商
    while True:
        arry.append(str(num % 2))  #用列表的append方法追加
        num = num // 2   #用地板除求num的值
        if num == 0:     #若地板除后的值为0,那么退出循环
            break

    return "".join(arry[::-1]) #列表切片倒叙排列后再用join拼接

print(decToBin(10))

输出结果:1010

二进制转十进制

  • 原理:要从右到左用二进制的每个数去乘以2的相应次方求累加。
# 二进制整数转十进制
def binToDec(binary):
    result = 0   #定义一个初始化变量,后续用于存储最终结果
    for i in range(len(binary)):
        #利用for循环及切片从右至左依次取出,然后再用内置方法求2的次方
        result += int(binary[-(i + 1)]) * pow(2, i)

    return result

print(binToDec("1010"))
结果:10

以上是关于Python实现十进制和二进制之间相互转换的主要内容,如果未能解决你的问题,请参考以下文章

python常用的十进制16进制字符串字节串之间的转换

js 不同进制之间相互转换

求教如何Python十进制小数和二进制小数相互转换的实现方式,用代码表示出来,谢谢

python进制转换

数字信号和模拟信号之间如何让相互转换?

C#中二进制和流之间的各种相互转换