#python v3.6.2
# dec - десятичное число, n - разрядность числа, по умолчанию - 32 (как у типа integer)
def dec_to_bin(dec, n=32):
if dec > 0:
b = ''
while dec > 0:
i = str(dec % 2)
b = i + b
dec = int(dec / 2)
return b
if dec < 0:
dec = -dec
# прямой код
b = '0'*(n-len(b))+b
# обратный код
b = b.replace('1', '2').replace('0', '1').replace('2', '0')
# дополнительный код
b = b[0:b.rfind('0')]+'1'+'0'*(len(b[b.rfind('0'):len(b)])-1)
if dec == 0:
return 0
#python v3.6.2
# dec - десятичное число, n - разрядность числа, по умолчанию - 32 (как у типа integer)
def dec_to_bin(dec, n=32):
if dec > 0:
b = ''
while dec > 0:
i = str(dec % 2)
b = i + b
dec = int(dec / 2)
return b
if dec < 0:
dec = -dec
b = ''
while dec > 0:
i = str(dec % 2)
b = i + b
dec = int(dec / 2)
# прямой код
b = '0'*(n-len(b))+b
# обратный код
b = b.replace('1', '2').replace('0', '1').replace('2', '0')
# дополнительный код
b = b[0:b.rfind('0')]+'1'+'0'*(len(b[b.rfind('0'):len(b)])-1)
return b
if dec == 0:
return 0