هل سمعت من قبل عن مصطلح " Binary Numbers " ؟ لعلك علمت من قبل أو مرت عليك معلومة أثناء قراءتك لمقالة ما أو كتاب يتحدث عن البرمجة أن الحاسوب لا يفهم إلا لغة معينة تتكون من الرقمين ( 0 ، 1 ) فقط ! و إن لم تكن سمعت عن هذه المعلومة من قبل فهذه التدوينة ستفيدك كثيراً إذا كنت تريد التعرف أكثر علي لغة الحاسوب Binary Numebrs .
ما هي لغة الحاسوب ( 0 ، 1 ) أو ما تسمي بـ " Binary Numbers " ؟
هي لغة برمجة تتكون من الرقمين ( 0 ، 1 ) فقط و هي أيضاً اللغة الوحيدة التي يفهمها الحاسوب ، بالفعل أنت تسأل نفسك الآن ماذا عن الحروف العربية و الأجنبية و الأرقام التي نكتبها للحاسوب ؟! و لكن لا تندهش إذا قلت لك أن عند كتابتك لهذه الحروف فيقوم الحاسوب بمعالجة هذه البيانات و تحويلها للغة التي يفهمها و هي لغة الأرقام (0 ، 1) ، و هذه اللغة هي التي تستخدم في كتابة أي برنامج تستخدمه و هي أساس لكل لغات البرمجة ، أي ملف أو أي صورة تراها هي مكونة في الأساس من هذه اللغة .
كيف يتم تحليل و فهم لغة الحاسوب Binary Numbers ؟
لغة الحاسوب هي ليست بالسهلة في فهمها ، و لكنها أيضاً ليست بالصعبة إذا فهمت أساسيات استخدامها ، فهي تتكون كما ذكرت من قبل من الرقمين (0 ، 1) فقط .
لغة الحاسوب تقسم لمقاطع كلها مكون من الرقمين 0 و 1 فقط و عند كتابة رقم بلغة الحاسوب علي سبيل المثال هذا الرقم : 0110
فكما تري هذا الرقم يتكون من 4 عناصر من 0 و 1 ، و عندما نقوم بتحليل أي رقم في هذه اللغة يجب علينا أن نستخدم جدول في التحليل ، و سنقسم الجدول إلي أربعة أعمدة أو علي حسب عدد العناصر الموجودة في الرقم ، أما عن الرقم السابق فسنقسم جدوله إلي أربعة أعمدة لأنه يتكون من أربعة أرقام ، و في الجدول سنعطي لكل عمود قيمة حسب ترتيبه بحيث يحمل كل عمود قيمة أكبر من قيمة العمود الذي يقع علي يمينه أو الذي يليه بمقدار الضعف و هذه خطوة مهما جداً ، فمثلاً سنضع العمود الأول و نعطيه القيمة " One " و بعده العمود الثاني و سنعطيه القيمة " Two " و بعده العمود الثالث و سنعطيه القيمة " Four " و بعده العمود الرابع و سنعطيه القيمة " Eight " و هكذا ، بحيث هذا تكون هذه الأرقام هي قيم الأعمدة الأعمدة ، و للتوضيح أكثر سنطبق هذا الكلام بمثال :
الرقم المكتوب بلغة الحاسوب و المطلوب تحليله هو : 0110
إذن سنقوم بإنشاء جدول و سنقسمه إلي أربعة أعمدة و سنقوم بترقيم الأعمدة حسب قيمتها كالتالي :
حيث كما شرحت من قبل أن كل عمود يكون أكبر من العمود الذي يليه بمقدار الضعف و في كل عمود تحت قيمته سنضع عناصر الرقم المطلوب تحليله في خانته كما في الجدول السابق ، و معني أن نقوم أن قيمة العمود الأول مثلاً = One أي أنه إذا تحقق شرط معين سنشرحه لاحقاً إذن تكون القيمة النهائية لهذا العمود = 1 .
بعد إنشاء الجدول و توزيع عناصر الرقم المطلوب تحليله " 0110 " علي خانات الجدول سنقوم بعدها بتحليل الرقم ، فكرة التحليل تكمن في قيمة كل عمود ، حيث عندما يكون العنصر " 0 " فيكون ناتج تحليل العمود = 0 ، أما إذا كان العنصر = " 1 " إذن فتكون قيمة العنصر 1 ( في لغة الحاسوب ) تساوي قيمة العمود ( أي 1 ( في لغة الأرقام العادية ) )
الخطوة التالية هي استخراج قيمة كل عمود ، و لحساب قيمة كل عمود سنقوم بتنفيذ خطوة واحدة و هي ضرب قيمة العمود R في العنصر N الذي يقع أسفله و الذي يكون دائماً ( 1 أو 0 ) و الناتج هو قيمة العمود ، و بعد استخراج قيمة كل عمود نقوم بجمع قيم الأعمدة الأربعة و الناتج النهائي هو القيمة العددية للرقم " 0110 " المكتوب بلغة الحاسوب .
إذن فعند تحليل الأعمدة ستكون القيم كالتالي :
1- بما أن قيمة العمود الأول R1 تساوي 1 و العنصر الذي يحتويه العمود N1 تساوي 0 ، فإن الناتج النهائي لهذا العمود =
0 X 1 = 0
2- بما أن قيمة العمود الثاني R2 تساوي 2 و العنصر الذي يحتويه العمود N2 يساوي 1 ، فإن الناتج النهائي لهذا العمود =
2 X 1 = 2
3- بما أن قيمة العمود الثالث R3 تساوي 4 و العنصر الذي يحتويه العمود يساوي 1 ، فإن الناتج النهائي لهذا العمود =
4 X 1 = 4
4- بما أن قيمة العمود الرابع تساوي 8 و العنصر الذي يحتويه العمود يساوي 0 ، فإن الناتج النهائي لهذا العمود =
8 X 0 = 0
5- إذن بعد استخراج قيم الأعمدة الأربعة ، يتم جمع القيم الأربعة : 0 + 2 + 4 + 0 = 6
6- إذن قيمة الرقم " 0110 " المكتوب بلغة الحاسوب تساوي 6 في لغة الأرقام العادية .
مثال توضيحي آخر :-
إذا أردنا تحليل الرقم " 10110 " :
أولاً نقوم بإنشاء جدول يتكون من خمس أعمدة :