العمليات الحسابية مع الأعداد ذات الإشارة (المتمم الأحادي والثنائي)
1. مقدمة في العمليات الحسابية للأنظمة ذات الإشارة
تختلف العمليات الحسابية في الأنظمة الرقمية حسب طريقة تمثيل الأعداد السالبة. سنركز هنا على نظامي:
- المتمم الأحادي (1's Complement)
- المتمم الثنائي (2's Complement)
1.1. لماذا نهتم بدراسة العمليات في كلا النظامين؟
- المتمم الأحادي: يستخدم في بعض تطبيقات الشبكات وأنظمة الاتصالات
- المتمم الثنائي: المعيار في الحواسيب الحديثة والمعالجات الدقيقة
2. العمليات في نظام المتمم الأحادي
2.1. عملية الجمع
الخطوات:
- اجمع العددين كقيم ثنائية بحتة
- إذا نتج حمل (Carry) من البت الأكثر أهمية:
- أضف 1 للنتيجة (End-Around Carry)
- تأكد من عدم حدوث overflow
مثال (4 بت):
0101 (+5) + 1100 (-3) = 0001 (مع حمل) + 1 (End-Around Carry) = 0010 (+2)
2.2. عملية الطرح
تتم بطريقة مشابهة للجمع باستخدام المتمم الأحادي.
مثال:
5 - (-3) = 5 + 3
0101 (+5) + 0011 (+3) = 1000 (-7) ← خطأ! حدث overflow
2.3. مشاكل المتمم الأحادي
- الصفر المزدوج: 0000 (+0) و 1111 (-0)
- حاجة لدوائر إضافية لمعالجة End-Around Carry
- تعقيد اكتشاف الأخطاء
3. العمليات في نظام المتمم الثنائي
3.1. عملية الجمع
المميزات:
- لا حاجة لمعالجة خاصة للحمل
- نفس الدائرة تستخدم للجمع والطرح
مثال (4 بت):
0101 (+5) + 1110 (-2) = 0011 (+3) (تم تجاهل الحمل)
3.2. عملية الطرح
تتم بتحويل الطرح إلى جمع مع المتمم الثنائي.
خوارزمية الطرح:
- خذ المتمم الثنائي للعدد المطروح
- أجر عملية جمع عادية
مثال:
7 - 5 = 7 + (-5)
0111 (+7) + 1011 (-5) = 0010 (+2)
3.3. كشف تجاوز السعة (Overflow)
يحدث عندما:
- جمع عددين موجبين يعطي نتيجة سالبة
- جمع عددين سالبين يعطي نتيجة موجبة
شرط الكشف:
Overflow = CarryIn[MSB] XOR CarryOut[MSB]
4. مقارنة بين النظامين في العمليات الحسابية
المعيار | المتمم الأحادي | المتمم الثنائي |
---|---|---|
معالجة الحمل | يحتاج End-Around Carry | لا يحتاج معالجة خاصة |
الصفر | له تمثيلان | تمثيل واحد |
دائرة الجمع | أكثر تعقيداً | أبسط وأسرع |
نطاق التمثيل (8 بت) | -127 إلى +127 | -128 إلى +127 |
الكفاءة | أقل كفاءة | عالية الكفاءة |
5. تمارين عملية
التمرين 1: عمليات جمع في المتمم الأحادي (8 بت)
- 00101101 + 11010010
- 01110111 + 01100001
التمرين 2: عمليات طرح في المتمم الثنائي (8 بت)
- 01011010 - 00110100
- 10000001 - 00000001
التمرين 3: تحليل الأخطاء
لماذا تعتبر عملية الطرح التالية في المتمم الأحادي خاطئة؟
0111 (+7) - 1001 (-6) = 1110 (-1) ← النتيجة المتوقعة +13
الخلاصة:
فهم العمليات الحسابية باستخدام المتمم الأحادي والثنائي أمر أساسي في تصميم الأنظمة الرقمية والمعالجات. نظام المتمم الثنائي هو الأكثر استخدامًا بسبب كفاءته وسهولة تنفيذه.