🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
escreva um programa que converta o valor da linha para o formato Base64 usando a codificação ASCII.
rn nota: & nbsp; esta tarefa usa uma versão do Base64 sem preenchimento (o símbolo & nbsp; = não é adicionado ao final).
O algoritmo Base64 converte dados binários em um formato de texto, usando apenas 64 símbolos ASCII seguros para impressão. A ideia principal é pegar 3 bytes (24 bits) dos dados de entrada e apresentá-los na forma de 4 caracteres (4 * 6 bits = 24 bits).
rn codificação ( to_base64 ):
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ). Uma linha é fornecida na entrada.
Linha & mdash; O resultado da transformação.
homem
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)
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...