*تكملة للمقالة السابقة (أنظمة الألوان)

علم نظم العد

 

علم نظم العد هو من العلوم الأساسية و المطلوبة في علوم البرمجة و علوم الحاسب. فالحواسيب كآلة إلكترونية فهو يعمل بالكهرباء وكل تمثيل للبيانات في داخله ما هي إلا صورة لجهود كهربائية تتأرجح ما بين الجهد الأعلى وجهد أدنى, أو ما تسمى بالجهود المنطقية لأنها يعبر عنها ب true أو false, أو ب 0 و 1.
لو قمنا بعملية جراحية للحاسب لوصلنا أنه مجموعة هائلة من الأسلاك والروابط الكهربائية. كل سلك يمر به جهد كهربائي, إما الجهد الأعلى, أو جهد أدنى. فكل سلك هو حامل لمعلومة وهي ترمز إما صفر و إما واحد حسب قيمة الجهد المار بالسلك. فكل سلك حامل لمعلومة يطلق عليه اسم BIT. ومجموعة من البتات ( أو أسلاك كهربائية (تعميما)) ستكون هي أول نظام عد يستطيع الحاسب العمل به ( وهو النظام الوحيد): نظام العد بالرقمين الصفر و الواحد , لا مكان ل 2 أو 3 أو 4 ...., فقط 0 و 1.
ما يصطلح عليه أيضا ب نظام العد البيناري Binary system. فما هو هذا العلم وما هو هذا العد و ما أصله؟
النظام العددي المعمول بعه عادة هو نظام العد العشري Decimal System وسمي بالعشري لأنه يستخدم عشرة رموز لكتابة أي عدد صحيح و هي : 0 1 2 3 4 5 6 7 8 9. فكل عدد في هذا النظام لا يستخدم إلا هذه الرموز فقط..
ملا حظة أخرى في هذا النظام أن طريقة كتابة عدد يتكون من عدة رموز-أرقام, تكون على أساس أن كل رقم له رتبة يجب احترامها: مثلا العدد 123 لا يمكن كتابة ترتيب أرقامه على شكل آخر ك 132 أو 231.
هذا لأن 1 يمثل عدد المئات و2 تمثل عدد العشرات و 3 تمثل عدد الوحدات في العدد 123
أي يمكن كتابة العدد 123 على شكل قوى للعدد عشرة:
123= 3 * 10^0 + 2 * 10^2 + 1* 10^3
العدد 10 يسمى قاعدة العد the base في النظام العشري.
جيد, لنفترض أن الإنسان خلقه الله ب أصبع واحدة في كل يد عوض عشرة أصابع!! كيف سيكون نظام العد؟
سيستعمل رمزين فقط للتعبير على كل الأعداد و سيبدأ العد هكذا:
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111...
عوض أن يكتب في النظام العادي ( نظام العشرة أصابع):
0 1 2 3 4 5 6 7 8 9 10 11 1 2 13 14 15 ..
هذا النظام الذي يعتمد على رمزين فقط يسمي ببساطة نظام العد الثنائي لأنه يستخدم رقمين هما الصفر و الواحد..
لاحظ أن هذا النظام الثنائي له قاعدة كما في النظام العشري و هي 2.
فيمكنك مثلا كتابة:
1110b = 0 * 2^0 + 1*2^1+ 1*2^2+ 1*2^3= 14d
فالعدد 1110 في النظام العد الثنائي يكتب 14 في نظام العد العشري.
الحاسب هي آلة إلكترونية تعمل بالكهرباء التي تمر في أسلاكها كما ذكرت أعلاه, فهو لا يعرف ما ذا تعني الأعداد أو السلاسل الحرفية أو الملفات...
فهو يعتمد فقط على الكهرباء للتعامل مع البيانات. لهذا فإن أبسط طريقة له في العد هو: هل يوجد جهد كهربائي في سلك أم لا يوجد؟
إن وجد فإنه يعتبره كأنه 1, إن كان الجهد منعدم فهو صفر.
لكن سلك واحد لا يكفي للتعامل مع الكم الهائل للبيانات, لهذا فإنه يقوم برص عدد من الأسلاك (bits) واحدة جنب الأخرى, مرتبة لكي يتعامل معها كأنها أرقام ضخمة.كل سلك يرمز لخانة من خانات وزن 2, أو بتعبير آخر سلك الأول لخانة الوحدات , والثاني للعشرات ( العشرات بالمفهوم العام لنظم العد), والثالث للمئات والرابع لعشرات المئات ....
فسلك واحد يكفي لتخزين رقمين فقط: 1 أو 0
لكن سلكين يمكن أن يكتب فيها عدد ك : 00, 01, 10, 11
أربعة أسلاك : من 0000 إلى 1111.
و هكذا..
كل سلك يمكنه تخزين رقم من قوى العدد 2 ويسمى بالبت Bit = Binary Digit.
فالحاسب( المعالج Processor) يحتوي على خانات من 8 Bits وتسمى ب البايت Byte. ومن خانات 16Bits و تسمى ب Word. و من خانات 32Bits و تسمى ب Double Word.

 

*الجزء السابق منقول



نظام العد الست عشري Hexadecimal system


هناك نظام عد آخر وهو نظام له أهمية كبيرة جدا في البرمجة المنخفضة المستوى عند التعامل مع المعالجات و هو نظام العد الست عشري Hexadecimal system.
و أهميته تكمن في تبسيط كتابة الأعداد الثنائية لأنه نظام يعتمد على قاعدة العدد 16, و16 هي مضاعفه من مضاعفات 2: 16= 2^4 ورموزه الستة عشر هي: 0 1 2 3 4 5 6 7 8 9 a b c d e f.
أضيفت الرموز الست الأخيرة: A B C D E F لتكملة الرموز الستة عشر. أهمية هذا النظام أنه يبسط كثيرا تمثيل الأرقام المكتوبة بنظام العد BINARY. لأن كل 4 BITS يمكن كتابتها برمز واحد فقط من رموز العد HEX.
في المثال رقم ممثل بنظامي العد البيناري ونظام العد الست عشري.
الواضح في المثال هو ميزة نظام العد الثنائي في تبسيط الكتابة لأرقام العد البيناري. فكل 4 أرقام من العدد البيناري يمكن كتابته بحرف واحد من رموز الست عشري.

F250B25C (hex) = 1111 0010 0101 0000 1011 0010 0101 1100 (bin

 

bin     1111    0010    0101    0000    1011    0010    0101    1100
F      hex           2          5          0          B         2          5          C


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

نأخذ مثالا مشهورا وهو الرقم 255

  • نقسم العدد 255 علي 16 فيكون الناتج 15.9375
  • نأخذ العدد الصحيح ونتجاهل الأرقام العشرية فيكون الناتج 15
  • نمثل المتبقي 15 في نظام Hex وهو يقابل الرمز F
  • للحصول علي باقي الرقم نقوم بضرب المتبقي (15) في (16) فينتج (240)
  • نقوم بطرح الناتج (240) من العدد الأصلي (255) فينتج (15)
  • نقوم بتمثيل الناتج الأخير (15) في نظام Hex وهو يقابل F
  • نقوم بضم الرمزين فينتج FF أي أن الرقم 255 يساوي في النظام الست عشري FF

 

ملحوظة هامه:

إذا كان ناتج القسمة أكبر من 15 فيتم قسمته مرة أخري كما في المثال التالي:

لمثيل العدد (500) في نظام Hex نقوم بالتالي:

  • أولا نقسم العدد 500 علي 16 فينتج 31.25
  • نأخذ الرقم الصحيح 31 ونتجاهل الأرقام العشرية
  • نأتي بالمتبقي فنقوم بضرب 31 في 16 فينتج 496 أي أن المتبقي من 500 هو الرقم 4
  • نحفظ المتبقي الأول 4 ونعود للرقم 31
  • بما أن الرقم 31 أكبر من 16 فنقوم بقسمة 31 علي 16 فينتج 1.9375
  • تباعا نأخذ الرقم الصحيح ونمثله في نظام Hex فيساوي 1
  • ثم نقوم بحساب المتبقي الثاني فتقوم بضرب العدد الصحيح الناتج (1) في 16 فيكون الناتج 16 ثم نطرحه من 31 فينتج 15 فنقوم بتمثيله في نظام Hex وهو يقابل الرمز F
  • من السابق يكون الناتج عندنا ثلاثة رموز وهم:
    • المتبقي الأول (4)
    • المتبقي الثاني (F)
    • الناتج الثالث (1)
    • فيكون الرمز كالتالي (1F4)

 

لاحظ أن الباقي الأول 4 جاء أول رقم من اليمين في النتيجة النهائية، أما الباقي الثاني 15 أو الحرف F جاء ثانياً من اليمين بينما حاصل القسمة والذي هو الرقم 1 يأتي ثالثاً

مع العلم بأنه في برامج التصميم يكون لآخر رقم مستخدم هو 255

حاول تحويل الأرقام 50 و 70 و 100 و 150 و 200 و 210 ثم أكتب بهم تعليق علي المقالة

للمتابعة والمزيد من المقالات يرجي زيارة

http://kenanaonline.com/step2thefuture

المصدر: كتب بواسطة عمر صبري أحمد

ساحة النقاش

عدد زيارات الموقع

65,795