مقدمة في نظام العد الثنائي (Binary number)
Ahmed AbuelfatehAhmed Abuelfateh

مقدمة في نظام العد الثنائي (Binary number)

ما هو النظام العددي الثنائي - Binary Numeral System؟ ما هو الهدف من تعلم نظام العد الثنائي Binary؟ كيفية تحويل العدد العشري Decimal إلى عدد ثنائي Binary؟ والعكس من ثنائي إلى عشري، بإستخدام أكثر من طريقة للتحويل.

ما هو نظام العد الثنائي - Binary؟

النظام الثنائي أو النظام العددي الثنائي بالإنجليزية Binary Numeral System، وتم تسمية النظام الثنائي بذلك لأنه يستخدم رمزين لتمثيل الأعداد، وهم الرمز 0 والرمز 1، وأحيانا يسمى نظام العد ذو رقم الأساس إثنين (Base 2)، وذلك لأن النظام الثنائي يستخدم رقم الأساس 2، ويسمى كل رمز من الرموز المستخدمة في تمثيل العدد الثنائي بـ بت أو bit، فعلى سبيل المثال، الرقم 2(10110100) هو رقم في النظام الثنائي مكون من ثمانية رموز، وبالتالي يصبح 8 بت أو كما تكتب بالإنجليزية 8bit، وعند قراءة أي رقم في نظام العد الثنائي فإننا نقوم بقراءة كل رمز منفردا، فعلى سبيل المثال الرقم 2(100) يقرأ واحد صفر صفر أو يقرأ من اليمين صفر صفر واحد، ولا يقرأ مائة.

ما هي الفائدة من تعلم نظام العد الثنائي؟

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

التحويلات في النظام الثنائي

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

التحويل من النظام العشري Decimal إلى النظام الثنائي Binary

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

أولا: تقسيم الرقم العشري إلى قسمين، الأرقام الصحيحة - Integer، والأرقام الكسرية - Fraction

وفي هذا المثال الرقم الصحيح هو 125، والرقم الكسري هو 0.625

ثانيا: تحديد رقم الأساس

بما أننا نريد تحويل الرقم إلى النظام الثنائي، فسوف نستخدم رقم الأساس 2

ثالثا: تحويل الجزء الصحيح من الرقم

وهنا سوف نقوم بقسمة الرقم الصحيح على رقم الأساس ونقوم بتسجيل الجزء الكسري من عملية القسمة، ثم نقوم بقسمة الجزء الصحيح من النتيجة مرة أخرى على رقم الأساس، ونكرر ذلك حتى نحصل على صفر صحيح في النتيجة، ويتم ذلك كالتالي:

  • نبدأ بقسمة الرقم 125 على رقم الأساس 2 لنحصل على الرقم 62.5 حيث يمثل ناتج القسمة الكسري (0.5)، وبضرب الناتج الكسري في رقم الأساس نحصل على الرقم 1، وهو أول رمز من مكونات العدد الثنائي الذي نرغب في الحصول عليه.
  • في هذه الخطوة سوف نستخدم الرقم الصحيح الناتج من عملية القسمة السابقة، وهو الرقم 62، وبقسمته على رقم الأساس نحصل على الرقم 31.0، وهنا يمثل ناتج القسمة الكسري (0.0)، وبضربه في رقم الأساس نحصل على الرقم 0، وهو الرمز الثاني المكون للرقم الثنائي.
  • والآن إتضح الأمر فسوف نقوم بقسمة الرقم 31 على رقم الأساس 2، لنحصل على الرقم 15.5، بضرب (0.5) في رقم الأساس نحصل على الرقم 1.
  • والآن نقوم بقسمة الرقم 15 على رقم الأساس 2، تنحصل على الرقم 7.5، ومنه نستنتج أن الرقم الثنائي هو 1.
  • وبقسمة الرقم 7 على رقم الأساس 2، نحصل على الرقم 3.5، ومنه نحصل على الرقم الثنائي 1.
  • بقسمة الرقم 3 على رقم الأساس 2، نحصل على النتيجة 1.5، ومنها نستنتج الرقم الثنائي 1.
  • والآن نقوم بقسمة الرقم 1 على رقم الأساس 2، لنحصل على النتيجة 0.5، وفي هذه المرحلة نستنتج أن الرقم الثنائي هو 1، وتكون هذه الخطوة هي آخر خطوة، لأننا حصلنا على الرقم صفر كرقم صحيح.

يتبقي أن نقوم بكتابة الأرقام الثنائية التي حصلنا عليها من الخطوات السابقة بالترتيب الذي حصلنا عليه، وفي هذه الخطوة يجب كتابة الأرقام بشكل صحيح، ولكي يتم ذلك سوف نبدأ دائما من العلامة العشرية (الكسرية) التي تسمى بـ Radix Point، ولأن الرقم الصحيح فسوف نبدأ من على يسار العلامة الكسرية,

وسوف تجد في النهاية أننا حصلنا على النتيجة كالتالي 2(1111101.)

رابعا: تحويل الجزء الكسري (العشري) من الرقم

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

  • نبدأ بضرب الرقم 0.625 في رقم الأساس 2، لنحصل على النتيجة 1.25، وهنا يكون الرقم الصحيح 1 هو أول رمز من مكونات الجزء الكسري من الرقم الثنائي.
  • في هذه الخطوة سوف نستخدم الرقم 0.25 وهو الجزء الكسري من نتيجة العملية السابقة ونقوم بضربه في رقم الأساس 2، لنحصل على النتيجة 0.5، ومنها فإن الرقم 0 هو الرقم الثاني من مكونات العدد الثنائي.
  • في هذه الخطوة سوف نقوم بضرب الرقم 0.5 في رقم الأساس 2، لنحصل على النتيجة 1.0، وهنا سوف نستنتج أن الرقم 1 هو الرقم الثنائي، وبما أننا حصلنا على الرقم صفر في الجزء الكسري، تكون هذه هي الخطوة الأخيرة.

وبكتابة الأرقام الثنائية التي حصلنا عليها بالترتيب ولكن من على يمين العلامة الكسرية، نحصل على الرقم الثنائي 2(.101).

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

خامسا: كتابة الرقم الثنائي

وفي هذا المثال الرقم 10(125.625) في النظام العشري يساوي الرقم 2(1111101.101) في النظام الثنائي.


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

*** تحويل الرقم العشري 10(117.8125) إلى النظام الثنائي؟

الرقم الصحيح - Integer
رقم الأساسباقي القسمة الصحيحباقي القسمة الكسري
2117
(117/2 = 58.5)=> 58
(58/2 = 29.0)=> 29
(29/2 = 14.5)=> 14
(14/2 = 7.0)=> 7
(7/2 = 3.5)=> 3
(3/2 = 1.5)=> 1
(1/2 = 0.5)=> 0
---
(0.5 * 2)=> 1
(0.0 * 2)=> 0
(0.5 * 2)=> 1
(0.0 * 2)=> 0
(0.5 * 2)=> 1
(0.5 * 2)=> 1
(0.5 * 2)=> 1
1110101.
الرقم الكسري - Fraction
رقم الأساسباقي القسمة الكسريباقي القسمة الصحيح
20.8125
(0.8125*2= 1.625)=> 0.625
(0.625*2= 1.25)=> 0.25
(0.25*2 = 0.5)=> 0.5
(0.5*2 = 1.0)=> 0.0
---
1
1
0
1
.1101

ومن هذا المثال نحصل على الرقم الثنائي 2(1110101.1101) وهو يمثل قيمة الرقم العشري 10(117.8125).

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

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

التحويل من النظام الثنائي Binary إلى النظام العشري Decimal

يوجد طريقتين للتحويل من النظام العددي الثنائي إلى النظام العددي العشري

الطريقة الأولى:

وتتم بإستخدام القانون الذي ناقشناه في مقالة الأنظمة العددية وهو

(dndn-1...d1d0.d-1d-2...d-n)2 = (dn*2n + dn-1*2n-1 + ... + d1*21 + d0*20 + d-1*2-1 + d-2*2-2 + ... + d-n*2-n)10

سوف تلاحظ في القانون أن كل رقم من مكونات الرقم الثنائي يرمز له بالرمز dnحيث الرمز d يرمز إلى الرقم والرمز n يرمز إلى ترتيب الرقم، وسوف تلاحظ أن الترتيب يبدأ من نقطة العلامة الكسرية حيث يبدأ من على يسار العلامة الكسرية بالرقم صفر، ويزيد بمقدار 1 كلما إتجهنا إلى اليسار حتى نصل إلى الرقم n، وسوف تلاحظ أنه عند يمين العلامة الكسرية يبدأ ترتيب الرقم من سالب واحد ثم سالب 2 حتى -n.

ولكي تتمكن من فهم تطبيق هذا القانون سوف نقوم بتحويل رقم من النظام الثنائي إلى مثيله في النظام العشري، وليكن الرقم الثنائي 2(1101.01) = 10( ؟؟؟ )

  • نجد أن أول رقم على يسار العلامة الكسرية هو الرقم 1، نقوم بضرب الرقم في رقم الأساس مرفوعا إلى أس وهو ترتيب الرقم وفي هذه الحالة هو 0، (20)، ومن المعروف أن أي رقم مرفوعا لأس يساوي صفر فهو يساوي واحد، أي أن هذه الخطوة هي الرقم 1 مضروبا في الرقم واحد، والنتيجة هي 1.
  • الرقم الثاني هو 0، بضربه في رقم الأساس مرفوع لأس الترتيب وهو 1، (21)، نحصل على الرقم 2، وبضربه في صفر تكون النتيجة هي 0.
  • الرقم الثالث هو 1، وترتيبه هو 2، تكون المعادلة 1 * 22، والنتيجة هي 1 * 4 تساوي 4.
  • الرقم الرابع والأخير من على يسار العلامة الكسرية هو 1، وترتيبه 3، لتكون المعادلة 1 * 23، والنتيجة هي 1 * 8 تساوي 8.
  • والآن نبدأ بالجزء الكسري (على يمين العلامة)، لنجد أن الرقم هو 0 وبضربه في رقم الأساس مرفوع لأس ترتيبه، (لآن نبدأ بالجزء الكسري (على يمين العلامة)، لنجد أن الرقم هو 0 وبضربه في رقم الأساس مرفوع لأس ترتيبه، (2-1)، تكون النتيجة هي 0.
  • والرقم التالي وهو الرقم الكسري الأخير هو الرقم 1، بضربه في رقم الأساس مرفوعا لأس ترتيبه، (2-2)، نحصل على المعادلة 1 * 2-2 تساوي 1* 0.25 تساوي 0.25.
  • وبجمع النتائج التي حصلنا عليها من الخطوات السابقة نحصل على الرقم العشري.

لتكون النتيجة هي (1 + 0 + 4 + 8 + 0 + 0.25) تساوي الرقم العشري 10(13.25).

الطريقة الثانية:

تعتبر هذه الطريقة طريقة مختصرة وتعتمد بالأساس على معرفتك المسبقة بمضاعفات الرقم 2، حيث نقوم في هذه الطريقة بحساب الوزن الخاص بكل خانة من خانات الرقم الثنائي، أو بمعنى أبسط نبدأ من يسار العلامة الكسرية ونقوم بإعطاء وزن لكل خانة، فنبدأ بالرقم 1، ثم 2، ثم 4، 8، 16، 32، 64، ... وهكذا حتى آخر رقم إلى يسار العلامة، ثم الأرقام على يمين العلامة نبدأ بـ 0.5، ثم 0.25، ثم 0.125، 0.0625، ... وهكذا.

ثم نقوم بجمع الأوزان التي يقابلها الرمز 1 في العدد الثنائي، ولتوضيح ذلك سوف نقوم بحل نفس المثال السابق 2(1101.01) كالتالي:

84210.50.25
1101.01

وبجمع الأوزان لخانات الرقم الثنائي التي تحتوي على الرقم 1 تصبح النتيجة هي (0.25 + 1 + 4 + 8) تساوي 10(13.25) وهو الرقم الذي حصلنا عليه بالطريقة الأولى.

21495

Discussion

    • Add new Comment
    • Captcha
      Captcha
    • Notify me of follow up comments via email.