Python 加法二进制数

3 投票
1 回答
10843 浏览
提问于 2025-04-18 15:49

在我用Python 3处理二进制数字时,出现了意想不到的输出。

我们可以很简单地通过内置的bin()函数把任何整数转换成二进制。例如:

>>>bin(4243125)

当我尝试把两个二进制数相加时,出现了问题:

>>>bin(x)+bin(y)

输出结果是两个二进制数的拼接,而不是它们的相加。也就是说,bin()函数的输出变成了一个字符串。

不过,使用二进制函数进行加法运算是没问题的:

>>>bin(x+y)

而且,如果不使用bin(),直接相加两个二进制数也是可以的:

>>>0b100+0b10111

那么,为什么bin()的输出会被设置为字符串呢?

1 个回答

4

binhex的作用是把十进制数字转换成对应进制的字符串表示。简单来说,就是把数字变成另一种形式来显示。

如果你想把两个数字相加,直接这样做就可以了:

x = 10
y = 2
x + y

如果你想输入二进制字符串并把它们相加,需要先把这些字符串转换回数字,可以用int函数,指定基数为2,像这样:

x = bin(10)
y = bin(2)
int(x, 2) + int(y, 2)

如果你想进行位运算,可以看看Python的位运算符:

https://wiki.python.org/moin/BitwiseOperators

撰写回答