كيف قاعدة 64 التعامل مع البيانات الثنائية مع الأصفار في نهاية

StackOverflow https://stackoverflow.com/questions/246548

  •  05-07-2019
  •  | 
  •  

سؤال

كما أفهم المواصفات ، Base64 في ترميز

أ) يحيط المصدر الثنائية ، ومنصات مع أصفار أن تكون متعددة من 24 بايت.

ب) ثم تحويل ذلك ست قطع في وقت واحد ، أن الهدف من 64 حرفا (A..Z, a..z, 0..9, +, -).إذا وجد الماضيين بايت (16 بت) صفر-مبطن آخر حرفين هي المحولة باسم '=='.إذا وجد أن آخر واحد بايت (8 بت) صفر-مبطن آخر حرف هو المحولة باسم '='.

سؤالي هو في الخطوة (ب) كيف تعرف أن آخر بايت أصفار لأنها كانت مبطن مقابلهم أصفار لأن تاي هي جزء من صالح الثنائية مصدر البيانات ؟

هو أن النظام هو المسؤول عن الجزء (ب) يجب أن أعرف ما حدث خلال الجزء (أ)

هل كانت مفيدة؟

المحلول

التشفير (مقابل فك) سوف تعرف طول إدخال البيانات و تكون قادرة على معرفة ما إذا كان الإخراج لا شيء "=" أو "==" في نهاية المطاف.سؤالك يفترض لا يوجد ربط بين مرحلتين ذكرت ولكن هذا ليس صحيحا في تطبيقات رأيت.

تنفيذ اضطررت إلى الكتابة لم أفعل المرحلة الأولى على الإطلاق منذ كانت إجراءات استخراج 6 بت مجموعات من تيار الإدخال في وقت واحد ، تزايد byteCount في كل مرة.ثم في النهاية التعبير "byteCount%3"كان المستخدمة لتحديد السلسلة إلى إلحاق إلى دفق إخراج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top