首页 > 编程知识 正文

Python输出整数的二进制

时间:2023-11-20 17:56:31 阅读:291470 作者:OCYQ

本文将从以下几个方面对Python输出整数的二进制进行详细的阐述:

一、bin()函数的使用

Python提供了一个内置函数bin(),可以将整数转换成二进制数。

    n = 10
    s = bin(n)
    print(s)

输出结果为:0b1010,其中“0b”表示二进制。

需要注意的是,bin()函数返回的是字符串类型。

二、格式化字符串的使用

Python中,我们还可以使用格式化字符串的方法,将整数转换成二进制数。

    n = 10
    s = "{0:b}".format(n)
    print(s)

输出结果为:1010。

其中,{0}表示第一个参数n,而“:b”表示将n转换成二进制数。

三、自定义函数实现

除了以上两种方法,我们还可以自定义函数来实现将整数转换成二进制数。

    def to_binary(n):
        if n == 0:
            return '0'
        s = ''
        while n > 0:
            s = str(n % 2) + s
            n //= 2
        return s
    
    n = 10
    s = to_binary(n)
    print(s)

输出结果为:1010。

上述函数通过不断对整数进行除以2操作,并记录余数,最终将余数按照从低到高的顺序拼接起来,得到二进制数。

四、补齐位数的实现

有时候,我们需要将二进制数补齐到指定位数,可以使用“{:0>位数}”的格式化字符串。

    n = 10
    s = "{:0>8}".format(bin(n)[2:])
    print(s)

输出结果为:00001010。

其中,[2:]是为了去掉bin()函数返回的字符串中的“0b”,字符串“{:0>8}”的含义是将二进制数补齐成8位,不足的用“0”填充。

五、结合位运算实现

最后,我们可以结合位运算来实现将整数转换成二进制数。

    n = 10
    s = ''
    for i in range(31, -1, -1):
        s += str((n >> i) & 1)
    print(s)

输出结果为:00000000000000000000000000001010。

上述代码中,我们从高位到低位逐个取出整数n的二进制位,并按顺序拼接成字符串。其中,“(n >> i) & 1”是获取n的第i位二进制数,并将其转换成十进制数,再和1进行按位与运算,得到该二进制位的值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。