الفرق بين ترتيب البايت البايت الكبير والبايت الصغير

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

  •  22-08-2019
  •  | 
  •  

سؤال

ما هو الفرق بين ترتيب بايت إنديان الكبير والبايت الصغير؟

يبدو أن كلاهما مرتبطان بـ Unicode و UTF16. أين نستخدم هذا بالضبط؟

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

المحلول

الكبار الإنديان (BE) / LITTLE-ENDIAN (LE) هي طريقتان لتنظيم كلمات متعددة البايت. على سبيل المثال ، عند استخدام بايتين لتمثيل حرف في UTF-16 ، هناك طريقتان لتمثيل الشخصية 0x1234 كسلسلة من البايتات (0x00-0XFF):

Byte Index:      0  1
---------------------
Big-Endian:     12 34
Little-Endian:  34 12

من أجل تحديد ما إذا كان النص يستخدم UTF-16BE أو UTF-16LE ، توصي المواصفات بإعداد أ بايت ترتيب علامة (BOM) إلى السلسلة ، تمثل الحرف U+FEFF. لذلك ، إذا كانت البايتان الأولين من ملف نصي مشفر UTF-16 FE, FF, ، الترميز هو UTF-16BE. إلى عن على FF, FE, ، هو UTF-16LE.

مثال مرئي: كلمة "مثال" في تشفيرات مختلفة (UTF-16 مع BOM):

Byte Index:   0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
------------------------------------------------------------
ASCII:       45 78 61 6d 70 6c 65
UTF-16BE:    FE FF 00 45 00 78 00 61 00 6d 00 70 00 6c 00 65
UTF-16LE:    FF FE 45 00 78 00 61 00 6d 00 70 00 6c 00 65 00

لمزيد من المعلومات ، يرجى قراءة صفحة ويكيبيديا endianness و/أو UTF-16.

نصائح أخرى

إجابة فرديناند (وغيرها) صحيحة ، لكنها غير مكتملة.

Big Endian (Be) / Little Endian (LE) لا علاقة له بـ UTF-16 أو UTF-32. كانت موجودة قبل Unicode ، وتؤثر على كيفية تخزين بايت الأرقام في ذاكرة الكمبيوتر. أنها تعتمد على المعالج.

إذا كان لديك رقم مع القيمة 0x12345678 ثم في الذاكرة سيتم تمثيله كـ 12 34 56 78 (يكون) أو 78 56 34 12 (LE).

يتم تمثيل UTF-16 و UTF-32 على 2 على التوالي 4 بايت ، وبالتالي فإن ترتيب البايتات يحترم الطلب الذي يتبعه أي رقم على هذا النظام الأساسي.

UTF-16 يشفر Unicode إلى قيم 16 بت. تعمل معظم أنظمة الملفات الحديثة على بايت 8 بت. لذلك ، لحفظ ملف مشفر UTF-16 على القرص ، على سبيل المثال ، عليك أن تقرر أي جزء من القيمة 16 بت يذهب في البايت الأول ، والذي ينتقل إلى البايت الثاني.

ويكيبيديا لديه تفسير أكثر اكتمالا.

ليتل إنديان: adj.

يصف بنية الكمبيوتر التي يكون فيها بايت بايت من 16 أو 32 بت في عناوين منخفضة ذات أهمية أقل (يتم تخزين الكلمة "في النهاية الصغيرة"). تعد عائلات PDP-11 و Vax لأجهزة الكمبيوتر والمعالجات الدقيقة Intel والكثير من أجهزة الاتصالات والأجهزة الشبكية صغيرة. يستخدم المصطلح أحيانًا لوصف ترتيب الوحدات الأخرى غير البايتات ؛ في معظم الأحيان ، بت داخل بايت.

الكبار الإنديان: adj.

مشترك؛ من رحلات Swift's Gulliver عبر الورقة الشهيرة عن الحروب المقدسة ونداء من أجل السلام من قبل داني كوهين ، USC/ISI IEN 137 ، بتاريخ 1 أبريل 1980

يصف بنية الكمبيوتر التي ، ضمن تمثيل رقمي متعدد البايت ، أهم بايت لديه أدنى عنوان (يتم تخزين الكلمة "الحاديقة الكبيرة"). معظم المعالجات ، بما في ذلك عائلة IBM 370 ، و PDP-10 ، وعائلات Motorola Microprocessor ، ومعظم تصميمات RISC المختلفة هي كبيرة. يسمى ترتيب البايت الكبير في بعض الأحيان في بعض الأحيان أمر الشبكة.

--- من ملف المصطلحات: http://catb.org/~esr/jargon/html/index.html

إن الكبار الإنديان والإنديان هي المصطلحات التي تصف الترتيب الذي يتم به تخزين سلسلة من البايتات في ذاكرة الكمبيوتر.

1. Big-Endian هو ترتيب يتم فيه تخزين "النهاية الكبيرة" (أهم قيمة في التسلسل) أولاً (في أدنى عنوان تخزين).

2. Little-Indian هو ترتيب يتم فيه تخزين "النهاية الصغيرة" (أقل قيمة مهمة في التسلسل) أولاً.

فمثلا

في جهاز كمبيوتر كبير إنديان ، البايتان المطلوبان للرقم السداسي عشري 4F52 سيتم تخزينها 4F52 في التخزين (if 4F is stored at storage address 1000, for example, 52 will be at address 1001).

في نظام إنديان صغير ، سيتم تخزينه 524F (52 at address 1000, 4F at 1001).

بايت endianness (كبير أو قليل) يجب تحديده لترميز Unicode/UTF-16 لأنه بالنسبة لرموز الأحرف التي تستخدم أكثر من بايت واحد ، هناك خيار ما إذا كنت يمكن قراءة/كتابة أهم بايت أولا أو الأخير. Unicode/UTF-16 ، نظرًا لأنها ترميزات متغيرة طول (أي يمكن تمثيل كل Char بواحد أو عدة بايتات) ، تتطلب تحديد هذا. (لاحظ مع ذلك أن "الكلمات" UTF-8 هي دائمًا 8 بتات/بايت واحد في الطول [على الرغم من أن الأحرف يمكن أن تكون نقاط متعددة] ، لذلك لا توجد مشكلة في endianness.) إذا لا يتم الاتفاق على وحدة فك الترميز على الاتفاقية المستخدمة ، ويمكن تفسير رمز الشخصية الخاطئة. لهذا السبب ، إما أن تكون اتفاقية endianness معروفة مسبقًا أو أكثر شيوعًا أ بايت ترتيب علامة عادة ما يتم تحديده في بداية أي ملف/دفق نصي Unicode للإشارة إلى أن ترتيب Endian كبير أو صغير يستخدم.

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