هل سمعت من قبل عن مصطلح " 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 " :
أولاً نقوم بإنشاء جدول يتكون من خمس أعمدة :
إذن الخطوة الثانية هي تحليل الأعمدة :
1- بما أن R1 يساوي 1 و N1 يساوي 0 إذن :
1 X 0 = 0
2- بما أن R2 يساوي 2 و N2 يساوي 1 إذن :
2 X 1 = 2
3- بما أن R3 يساوي 4 و N3 يساوي 1 إذن :
4 X 1 = 4
4- بما أن R4 يساوي 8 و N4 يساوي 0 إذن :
8 X 0 = 0
5- بما أن R5 يساوي 16 و N5 يساوي 1 إذن :
16 X 1 = 16
6- إذن بعد استخراج قيمة كل عمود يتم جمع القيم الخمسة :
0 + 2 + 4 + 0 + 16 = 22
7- إذن قيمة الرقم " 10110 " تساوي 22 .
بالتأكيد حديثنا عن لغة الحاسوب لأن فروعها كثيرة و لكن ما شرحته هو أساسيات هذه اللغة العملاقة و التي تعتمد في المقام الأول علي العمليات الحسابية ، و لكن لمن يرغب في تعلم لغات البرمجة مثل C و ++C و مثلهما من اللغات يجب أن يكون علي دراية و علم بـ Binary Numbers لأنك ستحتاجها في مرحلة معينة من كتابة البرنامج أو في مراحل تعلمك للغات البرمجة ، فهذه اللغة تدخل في تكوين كل تطبيقات الحاسوب التي تستخدمها و لنتخذ مثالاً بسيطاً لهذا :
فمثلاً إذا أردنا تحليل ملف بصيغة BMP و هو نوع من أنواع ملفات الجرافيكس ، فكل ملف من هذا النوع يتكون من سلسلة من الأرقام (1،0) ، ويكون الـ Binary Numbers الخاص به هو :
0100 1110 0101 0011 0110 0000
0101 1110 0011 1110 0001 0001
و لكل مقطع أو جزء في هذه الأرقام توصيف معين ، فمثلاً أول مقطعين أو أول جزئين يكونان 1 Bite واحد ، و للعلم فإن الـ Bite يتكون من 8 أرقام ، و بما أن أول مقطعين يتكونان من 8 أرقام " 1110 0100 " إذن فهما يمثلان 1 Bite واحد ، و إذا أخذنا أول أربعة مقاطع إذن فهم يمثلان 2 Bites ، و كل أول 2 Bites يعبران عن نوع الملف ، أما الأربعة المقاطع التاليين يعبران عن حجم الملف و هكذا .. ، فإن كل مجموعة من الأرقام تعبر عن شيء معين .
الموضوع من طرف: محمد طارق رشدي
ضمن مسابقة المحترف لأفضل تدوينة لسنة 2015
from موضوع جديد لك http://ift.tt/1WYJZYz
Aucun commentaire:
Enregistrer un commentaire