Как решить такую задачу на Python?

Как можно решить такую задачу на python? Причем не усложняя код, максимально просто и лаконично?

Автомат обрабатывает натуральное число N<256 по следующему алгоритму:

  1. Строится восьмибитная двоичная запись числа N.
  2. Инвертируются все разряды исходного числа (0 заменяется на 1, 1 на 0).
  3. К полученному двоичному числу прибавляют единицу.
  4. Полученное число переводится в десятичную систему счисления. Чему равен результат работы алгоритма для N = 80?1

Ответы (1 шт):

Автор решения: Алексей Сенокосов
num = input("Введите число в в диапазоне от 0 до 255: ")
# Проверяем, что введенное значение может быть преобразовано в число
if num.isdigit():
    # Преобразуем строку в число
    num = int(num)
    if num >= 0 and num < 256:
        binary_string = bin(num)[2:].zfill(8) #в 8-битную двоичную запись и отсекаем префиксом '0b'
        inverted_string = format(~int(binary_string, 2) & 0xFF, '08b')# меняем 0 на 1 , а 1 на 0
        new_string = bin(int(inverted_string, 2) + 1)[2:]# прибовляем 1
        result1 = int(new_string, 2) # переводим в десятичную систему

        result2 = 256-num
        print(result1)
        print(result2)
    else:
        print("Ошибка: число должно быть в диапазоне от 0 до 255")
else:
    print("Ошибка: введено некорректное значение")
→ Ссылка