في لغة الكمبيوتر، النايبل (وغالبا تكتب nibble أو nyble لتحاكي هجاء كلمة byte) هي تجمع من أربعة بت ,[1] أو نصف أوكتيتي. ونظرا لأن النايبل تتضمن 4 بت ( Bit 4 )، فبالتالي يكون لدينا 16 قيمة ممكنة (24)، لذا فإن النايبل تتطابق مع الأرقام العشرية ذات الستة أعداد (لذلك يشار إليها عادة على أنها "ستة أرقام" أو "هيكسيت").
ومن استخدامات مصطلح النايبل في السابق كان عام 1977 في مجموعة تكنولوجيا التعامل البنكي مع العميل في سيتي بنك حيث نشأ هناك معيار ما قبل الأيزو 8583 للرسائل الخاصة بالمعاملات بين آلات النقود ومراكز بيانات سيتي بنك، حيث كانت النايبل وحدة المعلومات الرئيسية.
يتم تمثيل البايت الكامل (الأوكتيت) برقمين سداسيين عشريين، لذلك فكان من الشائع عرض بايت ( 8 بت ) من المعلومات في هيئة اثنان من النايبل. وتعرف النايبل يضا باسم "نصف أوكتيت semioctet" أو "الرباعية quartet" في بيئة عمل الشبكات أو الاتصالات. في بعض الأحيان يتم تمثيل مجموعة قيم مكونة من 256 بايت بجدول 16×16 الذي يوضح شفرة|شفرات سداسية عشرية قابلة للقراءة لكل قيمة.
وقد نشأ مصطلح "نايبل" من حقيقة أن المصطلح "بايت" ذو لفظة متجانسة مع الكلمة الإنجليزية " bit ". والنايبل عبارة عن بايت صغير، والذي توضح في هذا السياق على أنها "نصف بايت". والتهجئة البديلة لهذه الكلمة "nibble" تعادل تهجئة كلمة "byte" وقد تم الإشارة إلى هذا الأمر في افتتاحية مجلة كيلوباود وبايت Kilobaud and Byte في بداية الثمانينات.
وتستخدم كلمة نايبل لوصف كم الذاكرة المستخدم لتخزين رقم من عدد مخزن في صيغة عشرية جمعية في الإطار الرئيسي لآي بي إم IBM. تستخدم هذه التقنية في جعل العمليات الحسابية أسرع وتصحيح الأخطاء بصورة أسهل. يتم تقسيم البايت ذو الثماني أجزاء إلى النصف وتستخدم كل نايبل لتخزين رقم واحد. آخر نايبل للمتغير يتم الاحتفاظ به من أجل الإشارة. ومن ثم فإن المتغير الذي يمكنه تخزين ما يصل إلى تسع أرقام سيتم "جمعه" في خمسة بايت. وقد نتجت سهولة تصحيح الأخطاء من قابلية الأرقام للقراءة في مجموعة من ستة أرقام hex dump يمكن من خلالها استخدام رقمين سداسيين لتمثيل قيمة البايت، مثل 16×16 = 28.
وعلى مر التاريخ، صادفنا الكثير من الحالات التي تم فيها استخدام مصطلح نايبل ليعبر عن مجوعة من الأجزاء الرقمية الأقل من ثمانية، والتي لم تكن بالضرورة أربعة. في خط الكمبيوتر المصغر أبل 2 Apple II Microcomputer Line،كان يتم التحكم في معظم مشغلات الأسطوانات عبر البرنامج. كتابة البيانات على القرص كانت تتم عبر تحويل صفحة حجمها 256 بايت إلى مجموعات من النايبل ذات الخمس أجزاء ولاحقا من ستة أجزاء، وكان تحميل البيانات من القرص يتطلب العكس. لاحظ أيضا أن مصطلح "بايت" يحيط به نفس الغموض، ففي وقت ما تعني بايت مجموعة من الأجزاء والتي ليس بالضرورة أن تكون ثمانية. أما اليوم فإن المصطلح "بايت" والمصطلح "نايبل" يشيران إلى مجموعات من 8 أجزاء وأربعة أجزاء على التوالي وغالبا ما لا تستخدم لأي أحجام أخرى. مصطلح "نصف نايبل" (أو "quartyr") يستخدم ليشير إلى مجموعة من جزأين أو نصف نايبل.
الستة عشر نايبل وما يكافئها في الأنظمة الرقمية الأخرى:
0hex | == | 0 (عدد) | == | 0oct | 0 | 0 | 0 | 0 | |||
1hex | == | 1 (عدد) | == | 1oct | 0 | 0 | 0 | 1 | |||
2hex | = | 2 (عدد) | = | 2oct | 0 | 0 | 1 | 0 | |||
3hex | == | 3 (عدد) | == | 3oct | 0 | 0 | 1 | 1 | |||
4hex | = | 4 (عدد) | = | 4oct | 0 | 1 | 0 | 0 | |||
5hex | == | 5 (عدد) | == | 5oct | 0 | 1 | 0 | 1 | |||
6hex | = | 6 (عدد) | = | 6oct | 0 | 1 | 1 | 0 | |||
7hex | == | 7 (عدد) | == | 7oct | 0 | 1 | 1 | 1 | |||
8hex | == | 8 (عدد) | == | 10oct | 1 | 0 | 0 | 0 | |||
9hex | = | 9 (عدد) | = | 11oct | 1 | 0 | 0 | 1 | |||
Ahex | == | 10 (عدد) | == | 12oct | 1 | 0 | 1 | 0 | |||
Bhex | == | 11 (عدد) | == | 13oct | 1 | 0 | 1 | 1 | |||
Chex | == | 12 (عدد) | == | 14oct | 1 | 1 | 0 | 0 | |||
Dhex | = | 13 (عدد) | = | 15oct | 1 | 1 | 0 | 1 | |||
Ehex | = | 14 (عدد) | = | 16oct | 1 | 1 | 1 | 0 | |||
Fhex | == | 15 (عدد) | == | 17oct | 1 | 1 | 1 | 1 | |||
استخراج نايبل من البايت
في لغة البرمجة السي:
#define HINIBBLE(b) (((b) >> 4) & 0x0F) #define LONIBBLE(b) ((b) & 0x0F)
حيث b يجب أن تكون متغيرا اوثابتا من نمط بيانات عدد صحيح (سواء بإشارة أو بدون إشارة). (بالطبع إذا كانت b ذات حجم أكثر من بايت واحد، سيتم أخذ بايت واحد فقط في الاعتبار).
على سبيل المثال:
HINIBBLE(0xAB)==0xA
and LONIBBLE(0xAB)==0xB
.
المراجع
- Hall, D. V. (1980). Microprocessors and Digital Systems. McGraw-Hill. .