""" Lab001. Преобразование текста в байты и биты. Цель: 1. Взять обычную текстовую строку. 2. Преобразовать её в байты UTF-8. 3. Показать каждый байт как десятичное число. 4. Показать каждый байт как восемь бит. 5. Восстановить исходный текст. """ # Исходное сообщение message = "HELLO SDR" # Кодирование текста в байты. # UTF-8 — способ представить символы числами. encoded_message = message.encode("utf-8") # Преобразование каждого байта в строку из восьми бит. binary_message = " ".join( f"{byte:08b}" for byte in encoded_message ) # Обратное преобразование байтов в текст. decoded_message = encoded_message.decode("utf-8") print("Исходный текст:") print(message) print("\nОбъект bytes:") print(encoded_message) print("\nБайты в десятичном виде:") print(list(encoded_message)) print("\nБайты в двоичном виде:") print(binary_message) print("\nПодробно по каждому символу:") for character, byte_value in zip(message, encoded_message): print( f"{character!r:>4} " f"→ число {byte_value:3d} " f"→ биты {byte_value:08b}" ) print("\nВосстановленный текст:") print(decoded_message) # Автоматическая проверка результата. assert decoded_message == message print("\nПроверка пройдена: исходный текст восстановлен без ошибок.")