Как решить такую задачу на Python?
Как можно решить такую задачу на python? Причем не усложняя код, максимально просто и лаконично?
Автомат обрабатывает натуральное число N<256 по следующему алгоритму:
- Строится восьмибитная двоичная запись числа N.
- Инвертируются все разряды исходного числа (0 заменяется на 1, 1 на 0).
- К полученному двоичному числу прибавляют единицу.
- Полученное число переводится в десятичную систему счисления. Чему равен результат работы алгоритма для 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("Ошибка: введено некорректное значение")