Hexadecimal Numbers

تعريف نظام العد الستة عشري Hexadecimal numeral system وماهي إستخداماته؟ - وكيفية تحويل الأرقام من النظام الثنائي إلى النظام الستة عشري، والعكس

كنا قد تحدثنا سابقا عن نظام العد الثنائي، وأن كل وحدة (رمز) من رموز العدد الثنائي تسمى "بت" bit، وللعلم أن أقل وحدة مستخدمة في أجهزة الكمبيوتر هي الـ "بايت" Byte، والبايت تساوي 8 بت (8bit)، وهي وحدة القياس الأساسية الشائع إستخدامها في معظم الأجهزة الإلكترونية الحديثة، حيث تستخدم ومضاعفاتها من الكيلوبايت، الميجابايت، الجيجابايت، التيرابايت ...........إلخ.

ماهو نظام العد الستة عشري؟ ولماذا أتعلمه؟

أولا: نظام العد الستة عشري سمي بذلك لأنه يحتوي على 16 (ستة عشر) رمزا لتمثيله (كتابته)، وهم بالترتيب من الرمز الأصغر (0 - صفر) إلى الرمز الأكبر (F).

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

وسوف تلاحظ إستخدام الرموز من 0 - 9، وإستخدام أول ستة حروف لاتينية لتمثيل باقي الأعداد الأكبر من 9، ويمكن كتابتهم بحروف صغيرة Lowercase أو حروف كبيرة Uppercase، وقيمتهم تحدد كالتالي:

  • A16 = 1010
  • B16 = 1110
  • C16 = 1210
  • D16 = 1310
  • E16 = 1410
  • F16 = 1510

ثانيا: نتعلم نظام العد الستة عشري لإستخدامه كوسيط لنظام العد الثنائي، وذلك لأن رقم الأساس 16 هو أحد مضاعفات رقم الأساس 2 (24) وبالتالي يكون إستخدامه أسهل في كتابة الأرقام الكبيرة ذات رقم الأساس 2، وبما أن رقم الأساس 16 يمثل أربعة أضعاف رقم الأساس 2 فإن كل 4 (أربعة) رموز من النظام الثنائي تمثل رمز واحد في النظام الستة عشري، فمثلا الرقم 111100002 (والذي يساوي 24010 في النظام العشري) يمكن كتابته F016 وبالتالي نحن كبشر يسهل علينا كتابة أو قراءة رمزين بدلا من 8 رموز .

لتمييز الأرقام المكتوبة بنظام العد الستة عشري يتم إضافة تحت بادئة (subscript) للرقم مثال FF16 أو يمكن إضافة 0x قبل الرقم مثال 0xFF وهي طريقة شائعة في معظم لغات البرمجة.

بما أن نظام العد الستة عشري يعتبر وسيط لنظام العد الثنائي، فيجب علينا أن نتعلم كيفية تحويل الأرقام من النظام الثنائي إلى النظام الستة عشري والعكس.

تحويل رقم من النظام الستة عشري إلى النظام الثنائي:

سوف نبدأ بتحويل الرقم 7E216 من نظام العد الستة عشري إلى النظام الثنائي، كما تعرفنا سابقا أن كل رمز من رموز العدد الستة عشري هو عبارة عن 4 بت (4bit) فسوف نستبدل كل رمز بمرادفه من النظام الثنائي، ونبدأ من اليمين إلى اليسار، وفي حالة ما إذا كان الرقم الثنائي عدد خاناته أقل من 4 بت سوف نقوم بإضافة أصفار إلى يسار الرقم حتى تصبح عدد خانات الرقم 4bit، حيث أن الصفر إلى يسار الرقم لا يؤثر على قيمته، ونبدأ بالحل كالتالي:

216=210=102=00102
E16=1410=11102
716=710=1112=01112

= 0111 1110 0010 = 111111000102

بعد الإنتهاء من تحويل الرقم الستة عشري إلى رقم ثنائي Binary يمكنك إزالة أي صفر من يسار الرقم.

تحويل رقم من نظام العد الثنائي إلى نظام العد الستة عشري:

سوف نقوم بتحويل الرقم 11110100000010112 من رقم ذو أساس 2 إلى رقم ذو أساس 16، ويتم ذلك من خلال إتباع الخطوات التالية:

  • نبدأ بقراءة الرقم من اليمين إلى اليسار
  • نقوم بتجزئة الرقم إلى مجموعات، كل مجموعة مكونة من أربع خانات 4bit
  • إذا كان عدد خانات آخر مجموعة أقل من أربعة خانات، نستكمل المجموعة بإضافة أصفار إلى يسار الأرقام حتى يصبح عدد الخانات يساوي 4bit
  • نستبدل كل مجموعة بالرقم المرادف لها من رموز نظام العد الستة عشري

وبتطبيق الخطوات السابقة، يتم الحل كالتالي:

111 1010 0000 1011 = 0111 1010 0000 1011

10112=1110=B16
00002=010=016
10102=1010=A16
01112=710=716

= 7A0B16

وبذلك نكون قد تعرفنا على أساسيات نظام العد الستة عشري، في بداية تعلم أنظمة العد المختلفة قد تجد بعض من الصعوبة في تذكر مرادفات كل رقم من النظام العشري (وهو النظام الذي إعتدنا التعامل به في حياتنا اليومية)، ولكن بعد قليل من الوقت وبعد إجراء العديد من عمليات التحويل من النظام الثنائي أو الستة عشري، سوف تجدها سهلة وما هي إلا مجرد طريقة أخرى لتمثيل الأرقام التي إعتدنا عليها، ولتبسيط الأمر أكثر، يمكنك الرجوع إلى الجدول التالي الذي يعرض الستة عشر رمز ومرادفاتهم في نظام العد الثنائي والعشري والستة عشري:

العشريالستة عشريالثنائي
01001600002
11011600012
21021600102
31031600112
41041601002
51051601012
61061601102
71071601112
81081610002
91091610012
1010A1610102
1110B1610112
1210C1611002
1310D1611012
1410E1611102
1510F1611112