Python 加法二进制数
在我用Python 3处理二进制数字时,出现了意想不到的输出。
我们可以很简单地通过内置的bin()函数把任何整数转换成二进制。例如:
>>>bin(4243125)
当我尝试把两个二进制数相加时,出现了问题:
>>>bin(x)+bin(y)
输出结果是两个二进制数的拼接,而不是它们的相加。也就是说,bin()函数的输出变成了一个字符串。
不过,使用二进制函数进行加法运算是没问题的:
>>>bin(x+y)
而且,如果不使用bin(),直接相加两个二进制数也是可以的:
>>>0b100+0b10111
那么,为什么bin()的输出会被设置为字符串呢?
1 个回答
4
bin
和hex
的作用是把十进制数字转换成对应进制的字符串表示。简单来说,就是把数字变成另一种形式来显示。
如果你想把两个数字相加,直接这样做就可以了:
x = 10
y = 2
x + y
如果你想输入二进制字符串并把它们相加,需要先把这些字符串转换回数字,可以用int
函数,指定基数为2,像这样:
x = bin(10)
y = bin(2)
int(x, 2) + int(y, 2)
如果你想进行位运算,可以看看Python的位运算符: