🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
ProgerLib Python للجميع
تغيير السمة
اكتب برنامجًا يحول قيمة النص إلى تنسيق Base64 باستخدام ترميز ASCII. ملاحظة: تستخدم هذه المهمة إصدارًا من Base64 بدون تعبئة (الرمز = لا يُضاف إلى النهاية). تقوم خوارزمية Base64 بتحويل البيانات الثنائية إلى تنسيق نصي، باستخدام 64 رمز ASCII آمنة للطباعة فقط. الفكرة الرئيسية هي أخذ 3 بايت (24 بت) من بيانات الإدخال وعرضها في شكل 4 أحرف (4 * 6 بت = 24 بت).
الترميز (to_base64):
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"). يتم إدخال سطر إلى المدخلات.
السطر — نتيجة التحويل.
رجل
توفو
# Константа с символами алфавита 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)
🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
AD
إعلان
جارٍ تشغيل الكود...