الفصل الخامس: تمثيل الأعداد والنصوص بالبتات وإجراء العمليات على مستوى البت
في عصر المعلومات الحديث، تعتبر البيانات حجر الأساس لكافة النظم الرقمية، سواء كانت أجهزة حوسبة تقليدية أو شبكات اتصال أو تطبيقات الذكاء الاصطناعي. ولأن جميع البيانات داخل الحواسيب يتم تمثيلها وتخزينها ومعالجتها باستخدام النظام الثنائي، فإن فهم كيفية تمثيل الأعداد والنصوص بالبتات (Bits) وكيفية إجراء العمليات على مستوى البت يُعدُّ أمراً ضرورياً لفهم البنية الأساسية للحوسبة الرقمية. يندرج هذا الموضوع ضمن المبادئ الأساسية لعلوم الحاسوب والهندسة الإلكترونية، ويُشكل أحد المحاور الجوهرية في تصميم المعالجات، البرمجيات، أنظمة التشغيل، وطرق التخزين والمعالجة.
مفهوم البت والبايت
البت (Bit) هو أصغر وحدة في البيانات الرقمية، ويأخذ أحد حالتين فقط: إما صفر (0) أو واحد (1). تمثل هذه القيم الثنائية الحالة الكهربائية للدوائر في الحواسيب: حالة انطفاء (0) أو تشغيل (1). البايت (Byte) يتكون من 8 بتات، وهو الوحدة الأساسية المستخدمة في تخزين البيانات. من خلال ترتيب البتات بطرق معينة، يمكن تمثيل أنواع مختلفة من البيانات مثل الأعداد، الحروف، الصور، والأوامر البرمجية.
التمثيل الثنائي للأعداد
الأعداد الصحيحة الموجبة
يُستخدم النظام الثنائي (Binary) لتمثيل الأعداد داخل أجهزة الحاسوب. في هذا النظام، تُكتب الأعداد باستخدام الرقمين 0 و1 فقط. على سبيل المثال، العدد العشري 5 يُمثل في النظام الثنائي بالشكل: 101.
| العدد العشري | التمثيل الثنائي |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
كل خانة في التمثيل الثنائي تُمثل قوة من قوى 2، ويتم جمع القيم التي تكون فيها البتات في وضع التشغيل (1).
الأعداد السالبة وتمثيل المكمل الثنائي (Two’s Complement)
لتمثيل الأعداد السالبة في الحواسيب، يتم استخدام تقنية “مُكمل الإثنين”. يُمكّن هذا الأسلوب من إجراء عمليات الجمع والطرح دون الحاجة إلى التحقق من إشارة العدد. لتمثيل عدد سالب باستخدام المكمل الثنائي:
-
يتم كتابة التمثيل الثنائي للعدد الموجب.
-
تُعكس جميع البتات (أي 0 ↔ 1).
-
يُضاف 1 إلى الناتج.
مثال: لتمثيل العدد -5 في 8 بتات:
-
التمثيل الثنائي لـ 5 هو:
00000101 -
عكس البتات:
11111010 -
الإضافة 1:
11111011← هذا هو التمثيل الثنائي لـ -5
الأعداد العشرية والكسرية
تمثيل الأعداد العشرية داخل الحاسوب (ذات الفاصلة العائمة) يتم باستخدام معيار IEEE 754، الذي يقسم العدد إلى ثلاثة أجزاء:
-
الإشارة: 1 بت يحدد ما إذا كان العدد موجباً أو سالباً.
-
الأُسّ: يعبر عن الفاصلة العشرية وتحويل العدد لمقياس قابل للتمثيل.
-
القيمة الفعلية (المانتيسا): تحتوي على الجزء الدقيق من العدد.
هذا التمثيل يُتيح تخزين أعداد كبيرة جداً أو صغيرة جداً بدقة عالية، مما يجعله مناسباً للحسابات العلمية والهندسية.
تمثيل النصوص باستخدام ترميز البتات
النصوص تُحول إلى أرقام لكي تتمكن الحواسيب من التعامل معها، ويتم ذلك من خلال أنظمة ترميز معيارية. أهم هذه الأنظمة:
ترميز ASCII
نظام ASCII (American Standard Code for Information Interchange) يستخدم 7 بتات لتمثيل كل حرف، مما يُنتج 128 رمزاً مختلفاً. يُستخدم هذا النظام لتمثيل الحروف الإنجليزية، الأرقام، وبعض الرموز الخاصة.
| الحرف | التمثيل الثنائي (ASCII) |
|---|---|
| A | 01000001 |
| B | 01000010 |
| a | 01100001 |
| 0 | 00110000 |
| ! | 00100001 |
ترميز Unicode و UTF-8
نظراً لكون ASCII لا يدعم لغات كثيرة، تم تطوير نظام Unicode الذي يُمثل الحروف من معظم لغات العالم. الترميز الأكثر استخداماً ضمن Unicode هو UTF-8، الذي يُستخدم بكثرة على الإنترنت ويدعم كافة رموز Unicode باستخدام تسلسل من 1 إلى 4 بايتات لكل رمز.
مثال:
-
الحرف العربي “أ” في UTF-8 يُمثَّل بتسلسل البايتات:
11011010 10100001
هذا يسمح بتخزين النصوص بلغات متعددة في نفس الملف أو النظام.
العمليات على مستوى البت (Bitwise Operations)
تُعد العمليات على مستوى البت جزءاً أساسياً من البرمجة المنخفضة المستوى والتحكم في الأجهزة الرقمية. تشمل العمليات على البتات ما يلي:
1. AND (وَ)
تُستخدم للمقارنة بين بتين، وتُنتج 1 فقط إذا كان كلا البتين 1.
yamlA = 1010
B = 1100
A AND B = 1000
2. OR (أو)
تُنتج 1 إذا كان أحد البتين أو كلاهما 1.
yamlA = 1010
B = 1100
A OR B = 1110
3. XOR (أو الحصري)
تُنتج 1 إذا كان أحد البتين 1 وليس كلاهما.
yamlA = 1010
B = 1100
A XOR B = 0110
4. NOT (نفي)
تُبدل البتات: 0 يصبح 1 و1 يصبح 0.
yamlA = 1010
NOT A = 0101
5. العمليات الإزاحية (Shift)
الإزاحة إلى اليمين (Right Shift)
يُستخدم لتحريك البتات إلى اليمين، ما يعادل القسمة على 2.
iniA = 1010 → 0101
الإزاحة إلى اليسار (Left Shift)
تحريك البتات إلى اليسار، ما يعادل الضرب في 2.
iniA = 1010 → 10100
أهمية فهم البتات في التطبيقات البرمجية
فهم التمثيل بالبتات يُعد أمراً ضرورياً في العديد من المجالات البرمجية:
-
تحسين الأداء: عمليات البتات أسرع بكثير من العمليات العادية، وتُستخدم في تطوير نظم تشغيل وألعاب فيديو عالية الأداء.
-
توفير المساحة: يُمكن ضغط البيانات باستخدام العمليات على مستوى البت لتقليل استهلاك الذاكرة.
-
الاتصالات والشبكات: يُستخدم تمثيل البتات في ترميز وفك ترميز البيانات خلال الإرسال.
-
الأمان والتشفير: تعتمد تقنيات التشفير على عمليات معقدة تُجرى على مستوى البت.
جدول مقارنة بين نظم التمثيل العددي
| النظام العددي | القاعدة | الحروف المستخدمة | أمثلة | استخدامه في الحاسوب |
|---|---|---|---|---|
| النظام الثنائي | 2 | 0 و 1 | 1010 | التمثيل الأساسي في الحواسيب |
| النظام الثماني | 8 | 0 إلى 7 | 12 (تعني 10 ثنائي) | يُستخدم أحيانًا في برمجة الأنظمة |
| النظام العشري | 10 | 0 إلى 9 | 10 | النظام المستخدم من قبل البشر |
| النظام السادس عشري | 16 | 0–9 و A–F | A (تعني 10 عشري) | يُستخدم لتمثيل الذاكرة وتسهيل القراءة |
الخلاصة التقنية
يمثل الفصل المتعلق بتمثيل الأعداد والنصوص بالبتات وإجراء العمليات على مستوى البت ركيزة أساسية لفهم كيفية عمل الحواسيب من الداخل. سواء في تخزين المعلومات، أو نقل البيانات، أو تشغيل البرمجيات، فإن كل ما يحدث في الحاسوب يتم على مستوى البتات. لذلك، فإن الإلمام بهذا المفهوم ليس فقط من الناحية النظرية، بل وتطبيقياً أيضاً، يُشكل قاعدة ضرورية لتطوير التطبيقات، تصميم المعالجات، بناء أنظمة الأمان، وحتى فهم التفاعلات الفيزيائية في الإلكترونيات الرقمية.
المراجع
-
Patterson, D. A., & Hennessy, J. L. (2013). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann.
-
Stallings, W. (2017). Computer Organization and Architecture: Designing for Performance. Pearson.

