🎉 Glückwunsch! 🎉
Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.
ProgerLib Python für alle
Schreiben Sie ein Programm, das den Zeilenwert mithilfe der ASCII-Kodierung in das Base64-Format konvertiert.
rn Hinweis: & nbsp; Diese Aufgabe verwendet eine Version von Base64 ohne Auffüllung (das Symbol & nbsp; = wird nicht am Ende hinzugefügt).
Der Base64-Algorithmus konvertiert Binärdaten in ein Textformat, wobei nur 64 druckbare ASCII-Symbole verwendet werden. Die Hauptidee besteht darin, 3 Bytes (24 Bits) der Eingabedaten zu nehmen und sie in Form von 4 Zeichen (4 * 6 Bits = 24 Bits) darzustellen.
rn Kodierung ( to_base64 ):
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ). Eine Zeile wird an die Eingabe übergeben.
Zeile — Das Ergebnis der Transformation.
Mann
Twfu
# Константа с символами алфавита Base64
BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
# Создаем словарь для быстрого обратного поиска (декодирования)
BASE64_MAP = {char: index for index, char in enumerate(BASE64_CHARS)}
s = input()
if not s:
print("")
# 1. Преобразуем всю строку в одну длинную битовую строку
bit_string = ""
for char in s:
# Получаем ASCII-код символа и форматируем его в 8-битную двоичную строку
bit_string += format(ord(char), '08b')
encoded_string = ""
# 2. Делим битовую строку на чанки (куски) по 6 бит
i = 0
while i < len(bit_string):
chunk = bit_string[i:i+6]
i += 6
# Если последний чанк короче 6 бит, дополняем его нулями справа
if len(chunk) < 6:
chunk = chunk.ljust(6, '0')
# 3. Конвертируем 6-битный чанк в число и находим символ в алфавите
decimal_value = int(chunk, 2)
encoded_string += BASE64_CHARS[decimal_value]
print(encoded_string)
🎉 Glückwunsch! 🎉
Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.
AD
Werbung
Führe deinen Code aus...