Напишите программу, которая переводит переданное её целое число (возможно, отрицательное)...

0 голосов
323 просмотров

Напишите программу, которая переводит переданное её целое число (возможно, отрицательное) в двоичный код. Используйте процедуру. на Python. Использовав процедуру def


Информатика (625 баллов) | 323 просмотров
Дан 1 ответ
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

(4.3k баллов)