شرح الانظمه العدديه

بسم الله الرحمن الرحيم
سنتعرف على الأنظمة العددية المستخدمة في أجهزة الكمبيوتر والشبكات وكيفية التحويل من نوع إلى آخر.


هناك العديد من الأنظمة العددية التي يمكن تعلمها بشكل عام , ولكن ما يهمنا منها هو 3 أنواع رئيسية :
  • النظام العشري (Decimal System)
  • النظام الثنائي (Binary System)
  • النظام السداسي عشر (Hexadecimal System)
تحتوي هذه المقالة على معلومات نراها معقّدة عندما نقرأها للمرة الأولى , ولكن بإستخدام الأمثلة الموجودة وحلّها ومقارنة الأجوبة الموجودة في المثال مع الجواب الذي نحصل عليه بعد التطبيق , سوف يساعدنا كثيراً في فهم هذه الأنظمة والفرق بينها.
نبدأ على بركة الله …
دعونا نأخذ درس رياضيات بسيط ونسترجع بعض الذكريات التي تعتبر جميلة للبعض , وكابوس للبعض الآخر ,قبل أن ندخل في شرح كل نظام على حدة.
أولاً يجب أن نتعرف على معنى مضاعفات العدد , وما هو الأس أو القوة وكيف يتم إستخدامه؟
عندما نتكلم عن مضاعفات عدد , فهذا يعني أن العدد نفسه يكون مرفوع لأُس معين , والأس هو عدد المرات التي نضرب فيها العدد بنفسه.
فمثلاُ :
لو قلنا أن العدد 5 مرفوع للأس 2 فهذا يعني أننا نضرب العدد 5 بنفسه مرتان, فيكون الناتج كالتالي :
5² = 5×5 فيكون الناتج 25.
وكذلك الأمر لو قلنا العدد 6 مرفوع للأس 3 فهذا يعني 6x6x6 فيكون الناتج يساوي 216 , وهكذا…..
قيمة الأس تبدأ من 0 ويمكن أن تصل إلى مالانهاية.
وقيمة العدد يمكن تحديدها من خلال النظام العددي الذي يتواجد فيه
(فإذا كان النظام عشري فهذا يعني أننا نستخدم مضاعفات العدد 10)
(وإذا كان ثنائي فإننا نستخدم مضاعفات العدد 2).
ومن المهم جداً أيضاً معرفة أن كل عدد مرفوع للأس 0 فإن قيمته تساوي 1.
10º تساوي 1
20º تساوي 1 …….
الآن بعد هذه المقدمة البسيطة دعونا ننتقل إلى الأنظمة العددية, حيث نبدأ من النظام السهل فالأصعب فالأكثر صعوبة. وعندما نقول النظام السهل فبالتأكيد تكون البداية مع النظام العشري.
النظام العشري (Decimal system)
يعتبر النظام العشري من أسهل الأنظمة العددية وأبسطها وذلك لأننا نستخدم هذا النظام يومياً في حساباتنا سواء كانت التعليمية أو الحياة اليومية, فهو مكوّن من 10 قيم (من 0 وحتى 9) , ومن خلال الإسم نعرف أن هذا النظام يستخدم في معادلته الحسابية مضاعفات العدد 10. حيث يكون العدد 10 مرفوع للأس 0 ثم 1 ثم 2 وهكذا إلى مالانهاية :
10º ثم 10¹ ثم 10² ثم 10³ ……
(10º=1) و (10¹=10) و (10² = 100) و (10³ = 1000)
من خلال ما سبق , نجد أن المعادلة الحسابية الخاصة بهذا النظام كالتالي :
1 ثم 10 ثم 100 ثم 1000 …. إلخ
ويتم إحتساب قيمة أي عدد في النظام العشري من خلال ضرب كل خانة من خانات العدد بقيمة الخانة المقابلة له في المعادلة السابقة.
فلو أخذنا العدد (253) كمثال, وأردنا إيجاد قيمته في النظام العشري, فإننا نقوم بالتالي:
نكتب المعادلة الحسابية للنظام العشري وهي (1 10 100 1000), ثم نقوم بكتابة كل عدد من المثال تحت الخانة المقابلة له في المعادلة فيكون كالتالي :
1 10 100
x  x   x
3  5    2
الآن نضرب العدد الأول بـ (1) والثاني بـ (10) والثالث بـ (100) , ثم نجمع هذه الأعداد مع بعضها لنحصل على النتيجة النهائية.
( 3×1 = 3) ثم (5×10 = 50) ثم (2×100 = 200) وعندما نجمع هذه الأعداد مع بعضها نحصل على العدد 253.
النظام الثنائي (Binary System)
يعتبر هذا النظام من أهم الأنظمة العددية التي يجب على كل مهندس شبكات فهمه جيداً , وذلك لأن الحواسيب تعتمد على هذا النظام كلغة رئيسية للتواصل فيما بينها.
النظام الثنائي يعني أننا نقوم بمضاعفة العدد 2, فيصبح لدينا المعادلة التالية :
2º ثم 2¹ ثم 2² ثم 2³ ……
(2º=1) و (2¹=2) و (2² = 4) و (2³ = 8)
من خلال ما سبق , نجد أن المعادلة الحسابية الخاصة بهذا النظام كالتالي :
1 ثم 2 ثم 4 ثم 8 ثم 16 ثم 32 ثم 64 ثم 128 ……. إلخ
المعادلة السحرية التي من خلالها يمكن التحويل بين النظام الثنائي والأنظمة الأخرى هي :
1  2  4  8  16  32  64  128
هذا النظام يحتوي على قيمتين فقط وهما (0 و 1) , حيث أن (0) تعني أن العدد المقابل لها ليس له قيمة, و(1) تعني أن العدد له قيمة , ويتم إحتساب قيمة العدد في هذا النظام من خلال جمع الأرقام التي تحتها (1) مع بعضها البعض.
فمثلاً لو أخذنا العدد الثنائي (1010) (واحد صفر واحد صفر)وليس
(ألف وعشرة), وأردنا إيجاد قيمته العشرية :
نكتب المعادلة السحرية التي تكلمنا عنها , ثم نضع الأعداد السابقة تحت كل خانة من خانات المعادلة , فيكون كالتالي :
1 2 4 8
0 1 0 1
الآن نقوم بجمع الأعداد التي تحتها القيمة (1) وهي 8 و 2 فيكون الناتج : 10.
كل خانة من خانات النظام الثنائي = 1 بِت , أي أن كل خانة في المعادلة تسمى (bit).
النظام السداسي عشر (Hexadecimal System)
يعتبر هذا النظام معقد جداً , وذلك لأننا نستخدم فيه الحروف بالإضافة إلى الأعداد. حيث يتكوّن هذا النظام من 16 قيمة , تبدأ من 0 وتنتهي بـ 15 , قيمة أول 10 أرقام هي شبيهة تماماً بـ (Decimal) من 0 إلى 9, ولكن بعدها نبدأ بإستخدام الحروف من (A) إلى (F) , حيث :
A = 10 و B = 11 و C = 12 و D = 13 و E = 14 و F = 15 .
فيكون لدينا سلم القيم التالي :
F E D C B A 9 8 7 6 5 4 3 2 1 0
النظام السداسي عشر يعني أننا نقوم بمضاعفة العدد 16, فيصبح لدينا المعادلة التالية :
16º ثم 16¹ ثم 16² ثم 16³ ……
(16º=1) و (16¹=16) و (16² = 256) …….
من خلال ما سبق, نجد ان المعادلة الحسابية الخاصة بهذا النظام هي التالية :
1 ثم 16 ثم 256 ……
عندما نرى أحرفاً تستخدم في كتابة عنوان معين لأجهزة الشبكات فلابد لنا أن نعرف أن هذا العنوان مكتوب بنظام الهيكسا , و أيضاً من مميزاته أنه يبدأ بالقيمة (0x) , فإذا وجدنا هذه القيمة في بداية أي عدد فلابد لنا ان نعرف انه من نظام الهيكسا  مع العلم أن (0x) هي فقط للدلالة على نوع العدد وليس لها أي قيمة.
فمثلاً لو أخذنا العدد (0x1F) وأردنا إيجاد قيمته في النظام السداسي عشر :
أولاً نعلم أنه (0x) ليس لها قيمة , فيبقى لدينا العددان (1F).
ثانياً نوجد قيمة كل عدد من هذه الأعداد من خلال مقارنتها مع سلّم القيم السابق.
ثالثاً نقوم بضرب كل قيمة بالعدد المقابل لها في المعادلة الخاصة بهذا النظام .
فيصبح لدينا التالي :
أولاً , العدد المطلوب إيجاد قيمته هو (1F).
ثانياً , قيمة الـ (1) هي (1), وقيمة الـ (F) هي (15).
ثالثاُ , نكتب المعادلة الحسابية ونضرب كل عدد بالقيمة المقابلة له ثم نجمع الناتج :
1 16 256 ……
15 1 …….
نجد أن (15×1=15) و (1×16=16) = 15+16 = 31.
كل خانة من خانات العدد المكتوب بنظام الهيكسا = 4 بت .
يستخدم هذا النوع من الأنظمة في كتابة عناوين الـ (MAC Address) وأيضاً يستخدم في كتابة عناوين الـ (IPv6) والذي سنتعرف عليه بشكل تفصيلي لاحقاً في هذه السلسلة بإذن الله تعالى.
مثال على أعداد مكتوبة بنظام الهيكسا : (0x21 , 0xff , 0xf11).
يعتبر الكلام الذي سبق نظرياً بحتاً , ولفهم هذه المعلومات دعونا ننتقل الآن إلى التطبيق العملي لما سبق من خلال تعلم طرق التحويل بين هذه الأنظمة العددية المختلفة.
التحويل من النظام العشري إلى النظام الثنائي
لتحويل الأعداد من الـ (Decimal) إلى الـ (Binary) نقوم بالخطوات التالية :
  1. نقوم بكتابة المعادلة الخاصة بالنظام الثنائي 1 2 4 8 16 32 64 128
  2. نقوم بوضع القيمة (1) تحت الأعداد التي مجموعها يساوي العدد العشري
  3. باقي الأعداد التي لم نستخدمها في المعادلة نقوم بوضع القيمة (0) تحتها.
لنفرض انه لدينا العدد 192 ونريد تحويله من (Decimal) إلى (Binary)…
أولاً نستخدم المعادلة الثابتة للنظام الثنائي وهي :
1 2 4 8 16 32 64 128
ثانياً نقوم بوضع قيمة 1 أمام الأرقام التي إذا جمعناها يصبح لدينا الناتج 192.
في مثالنا الحالي العدد هو 192 , ومن خلال المعادلة السابقة نجد أن العدد (192) هو عبارة عن مجموع العددين التاليين (128 + 64), لذا نضع تحت كل منهما القيمة (1), أما باقي الأعداد التي لم تستخدم في عملية الجمع نضع تحتها القيمة (0).
فيصبح لدينا التالي :
Decimal-To-Binary
فيصبح الناتج هو (11000000) ويقرأ كما قلنا من اليسار إلى اليمين (واحد واحد صفر صفر صفر صفر صفر صفر).
مثال آخر :
لنفرض اننا نريد تحويل العدد 255 من النظام العشري إلى الثنائي بإستخدام نفس الخطوات السابقة:
أولاً نستخدم المعادلة الثابتة للنظام الثنائي وهي :
1 2 4 8 16 32 64 128
ثانياً نقوم بوضع قيمة 1 أمام الأرقام التي إذا جمعناها يصبح لدينا الناتج 255.
في مثالنا الحالي العدد هو 255, لذا نقوم بالجمع بين الأعداد في المعادلة ونجد أن الـ (255) هو ناتج مجموع
(128 + 64 + 32 + 16 + 8 + 4 + 2 + 1).
في حالتنا هذه نلاحظ أنه تم إستخدام الأعداد كلّها في المعادلة ليصبح الناتج هو 255.
إذاً فأمام كل عدد من هذه الأعداد نضع العدد (1) و يصبح الناتج كالتالي :
Decimal-To-Binary-2
هناك طريقة أخرى يمكن إستخدامها للتحويل من النظام العشري إلى النظام الثنائي :
تعتبر هذه الطريقة بسيطة ولكنها ايضاً تحتاج إلى كتابة المعادلة أولاً , فمثلاً لو أردنا تحويل العدد 31 من النظام العشري إلى النظام الثنائي.
  1. نكتب المعادلة العامة 1 2 4 8 16 32 64 128
  2. نقارن العدد 31 بالأعداد الموجودة في المعادلة ونبدأ المقارنة من اليسار إلى اليمين
    فإذا كان 31 أصغر من العدد في المعادلة (نضع القيمة 0)
    وإذا كان 31 أكبر من العدد في المعادلة (نضع القيمة 1).
  3. عندما يكون 31 أكبر من العدد في المعادلة , نطرح ذلك العدد من 31. ونتابع المقارنة بالناتج.
دعونا نقوم بهذه الخطوات عملياً.
Decimal-To-Binary-Second-Way
– أولاً نقارن العدد 31 مع العدد الذي في أقصى اليسار وهو128 , نلاحظ أن العدد 31 أصغر من 128.
لذا نضع القيمة (0) تحت العدد 128.
– نتابع المقارنة ونجد أن العدد 31 أصغر من 64 وأصغر من32 لذا تحت كل منهما نضع القيمة (0).
– نقارن العدد 31 بالعدد التالي وهو 16 ونلاحظ أن 31 أكبر من 16 , لذا نقوم بوضع القيمة (1) تحت الـ (16).
وثم نطرح العدد (16) من (31), فيكون الناتج 15.
– الآن نقارن 15 مع 8 فنجد أن 15 أكبر من 8 لذا نضع قيمة (1) تحت العدد (8).
ثم نطرح الـ (8) من (15) فيصبح لدينا الناتج 7.
– الآن نقارن العدد 7 مع البقية ونلاحظ أنه أكبر من 4 , لذا نضع (1) تحت الـ (4)
ثم نطرح العدد (4) من (7) ويصبح لدينا الناتج 3.
– الآن نقارن العدد 3 مع البقية ونلاحظ أنه أكبر من 2 , لذا نضع (1) تحت العدد (2)
ونطرح (2) من (3) فيصبح الناتج (1).
– الآن نقارن العدد 1 مع البقية ونلاحظ أنه مساوي تماماً لذا نقوم بوضع (1) تحت العدد (1)
وهو الأخير ونطرح 1 – 1 فيصبح الناتج 0.
قم بتحويل الأعداد التالية من النظام العشري إلى الثنائي وتأكد من النتيجة مطابقة لما يلي :
212 = 11010100
229 = 11100101
2 = 00000010
التحويل من النظام الثنائي إلى النظام العشري
عملية التحويل من الـ (Binary) إلى (Decimal) هي عملية بسيطة جداً , ولاتحتاج مننا سوا معرفة سابقة بعملية الجمع , حيث نقوم بجمع الأعداد التي يوجد امامها القيمة (1) , أما الأعداد التي تحتها القيمة (0) فتعتبر لاشيء = 0.
فلو كان عندنا العدد 11001100 ونريد تحويله إلى (Decimal) , فإننا نتبع الخطوات التالية :
  1. نكتب المعادلة الخاصة بقيم النظام الثنائي (1 2 4 8 16 32 64 128)
  2. نضع العدد المراد تحويله تحت المعادلة (0 0 1 1 0 0 1 1)
  3. ثم نقوم بجمع الأعداد التي تحتها القيمة (1) وهي : 4 + 8 + 64 + 128 فيكون الجواب = 204
مثال آخر :
قم بتحويل العدد 11110000 من (Binary إلى Decimal)
أولاً نقوم بكتابة المعادلة ونضع تحتها العدد المراد تحويله
1 2 4 8 16 32 64 128
0   0  0  0   1   1   1  1
ثانياً نقوم بجمع الأعداد التي تحتها القيمة (1)
128 + 64 + 32 + 16 = 240
ثالثاً حاصل جمع الأعداد هو 240 وهو العدد العشري المقابل لـ (11110000).

قم بتحويل الأعداد التالية من (Binary) إلى (Decimal) وتأكد من أن النتيجة مطابقة لما يلي :
10101010 = 170
11001110 = 206
11111000 = 248
التحويل من النظام السداسي عشر (Hexadecimal) إلى النظام العشري (Decimal)
من المهم جداً تذكر القيمة العددية لكل خانة في النظام السداسي عشر وهذه القيم هي كالتالي :
Untitled-300x47الامر الثاني الذي يجب تذكره في هذا النظام هو المعادلة الخاصة به وهي :
1 16 256 
(أي ان كل خانة نقوم بضربها بالعدد المقابل في المعادلة)
إذاً فطريقة التحويل تكون كالتالي :
  • تحديد قيمة الخانة من خلال مقارنة العدد بقيمته في النظام السداسي عشر
  • ضرب القيمة بالعدد المقابل لها
  • نجمع ناتج الضرب فيظهر لنا قيمة العدد بالنظام العشري.
مثال :
لدينا العدد التالي وهو هيكسا (0x11F)
ذكرنا سابقاً بأن الـ (0x) الموجودة في أول العدد السابق لاقيمة لها , وهي فقط عبارة عن دلالة على أن العدد المكتوب هو بنظام الهيكسا.
الآن نقوم بإيجاد قيمة كل عدد مكتوب من خلال مقارنته بسلّم القيم الخاص بالنظام السداسي عشر.
F = 15 وهي الخانة الاولى
1 = 1 وهي الخانة الثانية
1 = 1 وهي الخانة الثالثة
ثانياً نقوم بضرب القيمة مع العدد المقابل لها في المعادلة الخاصة بالخانات, فيكون لدينا التالي :

الخانة الاولى (15×1) تساوي 15
الخانة الثانية (1×16) تساوي 16
الخانة الثالثة (1×256) تساوي 256
example
ثالثاً نقوم بجمع النتائج لنحصل على القيمة بالنظام العشري 15 + 16 + 256 = 287.
الآن يمكننا كتابة الناتج وهو : 0x11F = 287
مثال آخر :
لدينا العدد التالي : 0xfda
أولاً نقوم بمقارنة العدد الحالي ونجد قيمته من خلال معادلة النظام السداسي عشر , وهنا نجد :
a = 10 وهي الخانة الاولى
13 = d وهي الخانة الثانية
15 = f وهي الخانة الثالثة
ثانياً نقوم بضرب القيمة مع العدد المقابل لها في المعادلة الخاصة بالخانات, فيكون لدينا التالي :
الخانة الاولى تضرب بـ 1 (10×1)
الخانة الثانية تضرب بـ 16 (13×16)
الخانة الثالثة تضرب بـ 256 (15×256)
ثالثاً نقوم بجمع النتائج لنحصل على القيمة بالنظام العشري 10 + 208 + 3840 = 4058 .

قم بتحويل الأعداد التالية من (Hexadecimal) إلى (Decimal) وتأكد من أن النتيجة مطابقة لما يلي :
0x12d النتيجة 301
0x32c النتيجة 812
0x111 النتيجة 273
التحويل من النظام السداسي عشر (Hexadecimal) إلى النظام الثنائي (Binary)
عندما تكلمنا عن النظام الثنائي قلنا كل خانة من خانات النظام الثنائي = 1 بِت (Bit).
وعندما تكلمنا عن النظام السداسي عشر قلنا أن كل خانة = 4 بِت (Bit) .
هذا يعني أن كل عدد من السداسي عشر قيمته = 4 خانات من الثنائي.وبالتالي إذا كان لدينا العدد 4 من الهيكسا فإن قيمته = 0100 في الـ (Binary).
كيف تم ذلك ؟
  • أولاً نستخدم قيمة العدد في الهيكسا ونحوله إلى النظام العشري من خلال :
    Untitled-300x47
  • ثانياً نقوم بتحويل بسيط من الرقم العشري إلى الثنائي بإستخدام المعادلة :
    1 2 4 8
دعونا نأخذ مثالاً يوضح لنا الأمور ببساطة.
لدينا العدد التالي مكتوب بنظام الهيكسا (0x24a) ونريد تحويله إلى ثنائي.
أولاً نكتب القيمة العشرية لكل خانة من خانات العدد بدءاً من اليمين إلى اليسار
a = 10
4 = 4
2 = 2
(المقصود هنا هو ليس التحويل إلى النظام العشري ولكن فقط كتابة قيمة العدد).
ثانياً نقوم بتحويل هذه الأعداد من النظام العشري إلى النظام الثنائي بإستخدام المعادلة (1 2 4 8).
لدينا العدد 10 , وهو مجموع العددين 2 + 8 , إذاً نضع القيمة 1 تحت هذين العددين والقيمة 0 تحت العددين الآخرين
فيصبح لدينا العدد 10 بالنظام الثنائي هو 1010.
ننتقل بعدها إلى العدد 4, وهو عبارة عن العدد 4 في المعادلة , لذا نضع القيمة 1 تحت العدد 4 و 0 تحت الباقي
فيصبح لدينا العدد 4 بالنظام الثنائي هو 0100.
العدد الأخير هو 2 , وهو عبارة عن 2 في المعادلة , لذا تحت العدد 2 نضع القيمة 1 وباقي الأعداد تحتها 0
فيصبح لدينا العدد 2 بالنظام الثنائي هو 0010.
الآن نقوم بكتابة النتيجة النهائية كالتالي :
0x24a = 0010 0100 1010
مثال آخر :
لدينا العدد التالي مكتوب بنظام الهيكسا (0xabc) ونريد تحويله إلى ثنائي.
أولاً نكتب القيمة العشرية لكل خانة من خانات العدد بدءاً من اليمين إلى اليسار
a = 10
b = 11
c = 12
ثانياً نقوم بتحويل هذه الأعداد من النظام العشري إلى النظام الثنائي بإستخدام المعادة (1 2 4 8).
ما هما العددان اللذان مجموعهما = 10 ؟ 8 + 2 , إذا نضع تحتهما القيمة 1 والباقي تحته القيمة 0
فيصبح العدد 10 = 1010.
ماهما العددان اللذان مجموعها = 11 ؟ 8 + 2 + 1 , إذاً تحتهما القيمة 1 والباقي 0
فيصبح العدد 11 = 1011.
ماهما العددان اللذان مجموعهما = 12 ؟ 8 + 4 , إذاً نضع تحتهما القيمة 1 والباقي 0
فيصبح العدد 12 = 1100
النتيجة النهائية تصبح كالتالي : 0xabc = 1010 1011 1100.

قم بتحويل الأعداد التالية من (Hexadecimal) إلى (Decimal) وتأكد من أن النتيجة مطابقة لما يلي :
0x12d النتيجة 1101 0010 0001
0x32c النتيجة 1100 0010 0011
0x111 النتيجة 0001 0001 0001
كانت هذه نبذة عن الأنظمة العددية , وينصح بقراءة هذه المقالة أكثر من مرة وتطبيق المعلومات والأمثلة الموجودة فيها لفهم الأنظمة العددية المختلفة والفرق فيما بينها وأيضاً طريقة التحويل بين هذه الأنظمة.
يوجد في شبكة الإنترنت الكثير من المواقع التي يمكن من خلالها التحويل بين هذه الأنظمة بنقرة زر واحدة , ويمكن أيضاً إستخدام الآلة الحاسبة الموجودة في نظام التشغيل الخاص بنا للتحويل من نظام إلى آخر , ولكن الهدف من هذا المقال هو فهم طريقة التحويل وليس النتيجة النهائية للتحويل.
من هذه المواقع المفيدة نذكر موقع متميز جداً , حيث من خلاله يمكن تحويل أي نظام إلى نظام آخر مع وجود شرح مبسط لكل نظام عددي يتم تحويله :
وكما ذكرنا أيضاً يمكن إستخدام الآلة الحاسبة الموجودة في نظام التشغيل الخاص بنا, من خلال الخطوات التالية :
  • نقوم بالدخول إلى برنامج الآلة الحاسبة (Calculator)
  • من برنامج الحاسبة , ندخل إلى قائمة View ثم إلى Programmer
Calc01-300x197
  • نلاحظ وجود خيارات متعددة للأنظمة , نقوم من خلالها بإختيار النظام المراد تحويله وليكن (Dec), ثم نكتب القيمة المراد تحويلها
calc02-300x278
  • نقوم بإختيار النظام المراد تحويل القيمة السابقة إليه وليكن مثلاً (Hex), فتظهر لنا نتيجة التحويل مباشرة
calc03-300x274
دعونا الآن نتعرف على أهم المصطلحات التي يجب تذكرها من خلال هذا المقال :
  • Decimal System
  • Binary System
  • Hexadecimal System
  • Bit

مواضيع ذات صلة

شرح الانظمه العدديه
4/ 5
Oleh

إشترك بنشرة المواضيع

.اشترك وكن أول من يعرف بمستجدات المواضيع المطروحة

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *