我使用lamba函数将十进制负数转换为二进制二进制补码。但结果不是二进制数。
我的代码:
num1 = int(raw_input("Enter first bumber"))
if num1 < 0:
def tobin(x, count = 8):
return "".join(map(lambda y:str((x>>y)&1), range(count-1, -1, -1)))
num1 = tobin
print num1
结果:
Enter first bumber -5
<function tobin at 0x1f9c260>
预期结果应为1011。
谢谢。
答案 0 :(得分:2)
num1 = int(raw_input("Enter first bumber:\t"))
def tobin(x, count=4):
return "".join(map(lambda y: str((x >> y) & 1), range(count - 1, -1, -1)))
if num1 < 0:
num1 = tobin(num1)
print num1
结果:
Enter first bumber: -5
1011