كيف قاعدة 64 التعامل مع البيانات الثنائية مع الأصفار في نهاية
سؤال
كما أفهم المواصفات ، Base64 في ترميز
أ) يحيط المصدر الثنائية ، ومنصات مع أصفار أن تكون متعددة من 24 بايت.
ب) ثم تحويل ذلك ست قطع في وقت واحد ، أن الهدف من 64 حرفا (A..Z, a..z, 0..9, +, -).إذا وجد الماضيين بايت (16 بت) صفر-مبطن آخر حرفين هي المحولة باسم '=='.إذا وجد أن آخر واحد بايت (8 بت) صفر-مبطن آخر حرف هو المحولة باسم '='.
سؤالي هو في الخطوة (ب) كيف تعرف أن آخر بايت أصفار لأنها كانت مبطن مقابلهم أصفار لأن تاي هي جزء من صالح الثنائية مصدر البيانات ؟
هو أن النظام هو المسؤول عن الجزء (ب) يجب أن أعرف ما حدث خلال الجزء (أ)
المحلول
التشفير (مقابل فك) سوف تعرف طول إدخال البيانات و تكون قادرة على معرفة ما إذا كان الإخراج لا شيء "=" أو "==" في نهاية المطاف.سؤالك يفترض لا يوجد ربط بين مرحلتين ذكرت ولكن هذا ليس صحيحا في تطبيقات رأيت.
تنفيذ اضطررت إلى الكتابة لم أفعل المرحلة الأولى على الإطلاق منذ كانت إجراءات استخراج 6 بت مجموعات من تيار الإدخال في وقت واحد ، تزايد byteCount في كل مرة.ثم في النهاية التعبير "byteCount%3
"كان المستخدمة لتحديد السلسلة إلى إلحاق إلى دفق إخراج.