如何对二进制数执行数学运算?
我怎么能在Python中直接对二进制数字进行加法、减法和比较,而不把它们转换成十进制呢?
10 个回答
9
如果你在说位运算符,那你需要的是:
~ Not
^ XOR
| Or
& And
否则,二进制数字和十进制数字的工作方式是完全一样的,因为数字就是数字,无论你怎么看它们。十进制和二进制之间唯一的区别在于我们查看这些数据时的表示方式。
10
我觉得你对二进制有些混淆。二进制和十进制其实就是数字的不同表示方式,比如说,101(二进制)和5(十进制)表示的是同一个数字。加法、减法和比较这些操作都是针对数字进行的——比如说,101(二进制)等于5(十进制),而加法的逻辑操作在任何进制下都是一样的。即使你的Python解释器内部是以二进制存储数据,这也不会影响你如何使用它——如果你用的是整数类型,那就直接用加、减等操作就可以了。
如果你有一串二进制数字的字符串,你需要自己写代码来处理,或者使用int(binaryString, 2)这个函数来转换它们。
186
你可以使用bin()和int()这两个函数在字符串形式的二进制和整数之间进行转换。
>>> bin(88)
'0b1011000'
>>> int('0b1011000', 2)
88
>>>
>>> a=int('01100000', 2)
>>> b=int('00100110', 2)
>>> bin(a & b)
'0b100000'
>>> bin(a | b)
'0b1100110'
>>> bin(a ^ b)
'0b1000110'