Видимо, для кодирования отрицательных чисел используется прямой код: записывается минус и затем просто двоичное представление модуля числа.
Алгоритм перевода: разбиваем двоичные цифры на группы по 3 (начиная справа) и переводим каждую группу отдельно.
Код (Python 3):
N = input()
sign = ""
if N[0] == "-":
sign = "-"
N = N[1:]
oct_reversed = ""
while len(N) > 0:
N, last_triplet = N[:-3], N[-3:]
oct_digit = 0
while len(last_triplet) > 0:
oct_digit *= 2
if last_triplet[-1] == "1":
oct_digit += 1
last_triplet = last_triplet[:-1]
oct_reversed += str(oct_digit)
oct = sign + oct_reversed[::-1]
print(oct)
Пример ввода:
-1110010
Пример вывода:
-132
Поделитесь своими знаниями, ответьте на вопрос:
Какие достоинства и недостатки имеют табличные информационные модели?
табличные информационные модели имеют достоинства
1) интуитивная понятность.2) возможность реализации с высокой степенью точности.
недостатки: возможность образования скрытых каналов утечки информации.