如何在Python中添加,减去和比较二进制数而不转换为十进制?
发布于 2018-09-04 12:06:45
我觉得你对二进制是什么感到困惑。二进制和十进制只是数字的不同表示 - 例如101个基数2和5个基数10是相同的数字。对数字进行加法,减法和比较操作 - 101 base 2 == 5 base 10,无论你使用什么基础,加法都是相同的逻辑运算。你的python解释器可以在内部存储二进制的事实这会影响你如何使用它 - 如果你有一个整数类型,只需使用+, - 等。
如果你有二进制数字字符串,你必须编写自己的实现或使用int(binaryString,2)函数转换它们。
发布于 2018-09-04 13:21:46
下面是对以前发布的函数的重写:
def addBinary(a, b): # Example: a = '11' + b =' 100' returns as '111'.
for ch in a: assert ch in {'0','1'}, 'bad digit: ' + ch
for ch in b: assert ch in {'0','1'}, 'bad digit: ' + ch
sumx = int(a, 2) + int(b, 2)
return bin(sumx)[2:]
https://stackoverflow.com/questions/-100002551
复制相似问题