2016-10-21 2 views
0

Я использую функцию lamba для преобразования десятичного отрицательного числа в дополнение к двоичному двору. Однако результат не является двоичным числом.Функция Python 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.

Спасибо.

ответ

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