الأنظمة الرقمية · الفصل 1 — أنظمة العدשיטות ספירה · מערכות ספרתיות · סמל מקצוע 11.002⌂📚🏠
الفصل 1
أنظمة العد
שיטות ספירה
الصف العاشر · 4 ساعات تعليمية
نحن نعدّ بعشرة أرقام لأن لنا عشرة أصابع. الدائرة الإلكترونية لها «إصبعان» فقط: جهد منخفض وجهد عال، ولذلك تعدّ برقمين: 0 و 1. في هذا الفصل نتعلم كيف نكتب أي عدد بهذين الرقمين، كيف ننتقل بين النظام العشري، الثنائي والسداسي عشر، كيف نكتب عددا سالبا بدون إشارة ناقص، وكيف نجمع ونطرح كما يفعل الحاسوب.
في نهاية هذا الفصل سنعرف أن:
نفكّك عددا عشريا إلى مجموع قوى للأساس 10، ونعرف ما هو وزن كل خانة.
نحوّل عددا من النظام الثنائي أو السداسي عشر إلى النظام العشري، وبالعكس.
نحوّل مباشرة بين النظام الثنائي والنظام السداسي عشر بواسطة مجموعات من أربعة بتات.
نكتب عددا سالبا بطريقة المتمم إلى 1 وبطريقة المتمم إلى 2.
نجمع ونطرح أعدادا ثنائية، ونطرح بواسطة جمع المتمم إلى 2.
نكتب عددا عشريا بشيفرة BCD، ونميّز بينها وبين العدد الثنائي.
הצגת מספר עשרוני – عرض العدد العشري (Decimal Number)
نظام العد(שיטת ספירה): هو طريقة لكتابة الأعداد بواسطة عدد محدد من الرموز. عدد الرموز المختلفة في النظام يسمى الأساس (בסיס).
النظام الذي نستعمله كل يوم هو النظام العشري (השיטה העשרונית): أساسه 10 ورموزه عشرة، من 0 حتى 9. قيمة الرقم لا تتعلق بالرقم نفسه فقط، بل أيضا بمكانه في العدد. في العدد 3575 الرقم 5 يظهر مرتين: مرة قيمته 500 ومرة قيمته 5.
الخانة والوزن(ספרה ומשקל (מקום)): كل مكان في العدد يسمى خانة. لكل خانة وزن هو قوة للأساس: الخانة اليمنى وزنها 100 = 1، التي على يسارها وزنها 101 = 10، ثم 102 = 100 وهكذا. الرقم المكتوب في الخانة يسمى المعامل (מקדם).
العدد 3575: فوق كل خانة وزنها، وتحتها قيمة الوزن
تفكيك عدد إلى مجموع قوى للأساس · פירוק מספר לסכום של חזקות הבסיס
N = an·rn + ... + a2·r2 + a1·r1 + a0·r0
الرمز
المعنى
وحدة القياس
N
قيمة العدد
—
r
الأساس: 10 في النظام العشري، 2 في الثنائي، 16 في السداسي عشر
—
a0 ... an
المعاملات (أرقام العدد)، من الخانة اليمنى a0 إلى اليسرى an
—
r0 ... rn
أوزان الخانات
—
مثال 1.1
نفكّك العدد العشري 3575 إلى مجموع قوى للأساس 10.
الحل:
نكتب كل رقم مضروبا في وزن خانته. الخانة اليمنى هي الخانة رقم 0.
3575 = 3·103 + 5·102 + 7·101 + 5·100
3575 = 3000 + 500 + 70 + 5
3575 = 3·103 + 5·102 + 7·101 + 5·100
ملاحظة: التفكيك هو وصف مختصر للعدد: بدل أن نقول «ثلاثة آلاف وخمسمئة وخمسة وسبعون» نكتب أربعة معاملات فقط، والمكان يخبرنا عن الوزن. نفس الفكرة تعمل في أي أساس آخر — نبدّل 10 بالأساس الجديد.
سؤال 1.1: نفكّك العدد 4082 إلى مجموع قوى للأساس 10. ما هو وزن الرقم 8؟
מספרים בבסיס בינארי (2) ובבסיס הקסדצימלי (16) – الأعداد في النظام الثنائي والنظام السداسي عشر (Binary & Hexadecimal)
النظام الثنائي – הבסיס הבינארי:
النظام الثنائي(השיטה הבינארית): هو نظام عد أساسه 2 ورموزه اثنان فقط: 0 و 1. أوزان الخانات هي قوى العدد 2: 1 ، 2 ، 4 ، 8 ، 16 ، 32 ، 64 ، 128 ...
البت(סיבית (bit)): هو خانة واحدة في العدد الثنائي. البت الأيمن يسمى البت الأدنى وزنا(LSB) والبت الأيسر يسمى البت الأعلى وزنا(MSB). مجموعة من 8 بتات تسمى بايت (בית).
لكي لا نخلط بين الأنظمة نكتب الأساس صغيرا تحت العدد: 10112 هو عدد ثنائي، و 101110 هو العدد العشري «ألف وأحد عشر».
أوزان الخانات في العدد الثنائي 1011012
من الثنائي إلى العشري – המרה מבינארי לעשרוני:
نكتب تحت كل بت وزنه، ثم نجمع الأوزان التي فوقها البت 1 فقط. البت 0 لا يضيف شيئا.
مثال 1.2
نحوّل العدد الثنائي 1011012 إلى النظام العشري.
الحل:
نفكّك العدد إلى مجموع قوى للأساس 2:
1011012 = 1·25 + 0·24 + 1·23 + 1·22 + 0·21 + 1·20
1011012 = 32 + 0 + 8 + 4 + 0 + 1
1011012 = 4510
1011012 = 4510
نتذكر: بـ n بتات نستطيع أن نكتب 2n أعدادا مختلفة، من 0 حتى 2n − 1. مثلا بـ 4 بتات: 16 عددا، من 0 حتى 15؛ بـ 8 بتات: 256 عددا، من 0 حتى 255.
تدريب سريع — نحوّل من الثنائي إلى العشري
11012
210012
311002
4100112
5101102
6110112
71001102
81011012
91100112
101111002
1111001002
12111111112
الإجابات:152931241952262773884595110601110012255
من العشري إلى الثنائي – המרה מעשרוני לבינארי:
نقسم العدد على 2 مرة بعد مرة، وفي كل مرة نسجل الباقي. نتوقف عندما يصبح الناتج 0. الباقي الأول هو البت الأدنى وزنا، والباقي الأخير هو البت الأعلى وزنا، ولذلك نقرأ البواقي من الأسفل إلى الأعلى.
مثال 1.3
نحوّل العدد العشري 4510 إلى النظام الثنائي.
الحل:
القسمة
الناتج
الباقي
نقرأ من الأسفل إلى الأعلى
45 : 2
22
1
البت الأدنى وزنا (LSB) ↓
22 : 2
11
0
11 : 2
5
1
5 : 2
2
1
2 : 2
1
0
1 : 2
0
1
البت الأعلى وزنا (MSB) ↑
نقرأ البواقي من الأسفل إلى الأعلى:
4510 = 1011012
فحص: 32 + 0 + 8 + 4 + 0 + 1 = 45.
4510 = 1011012
مثال 1.4
نحوّل العدد 10010 إلى النظام الثنائي بطريقة الأوزان، بدون قسمة.
الحل:
نكتب أوزان الخانات: 128 ، 64 ، 32 ، 16 ، 8 ، 4 ، 2 ، 1. نبحث عن أكبر وزن لا يزيد عن العدد، نطرحه، ونكمل مع الباقي.
100 − 64 = 36
36 − 32 = 4
4 − 4 = 0
استخدمنا الأوزان 64 ، 32 و 4: نكتب 1 في خاناتها و 0 في باقي الخانات.
النظام السداسي عشر(השיטה ההקסדצימלית (בסיס 16)): هو نظام عد أساسه 16 ورموزه ستة عشر: الأرقام 0 حتى 9، ثم الأحرف A ، B ، C ، D ، E ، F للقيم من 10 حتى 15. أوزان الخانات هي قوى العدد 16: 1 ، 16 ، 256 ، 4096 ...
العدد الثنائي طويل وصعب القراءة. النظام السداسي عشر هو طريقة مختصرة لكتابته: كل خانة سداسية عشرية تقابل بالضبط أربعة بتات، لأن 16 = 24. لذلك نجده في عناوين الذاكرة، في ألوان الشاشة وفي لغات البرمجة (حيث يُكتب 0x2F).
Dec
Bin
Hex
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
الجدول الأساسي: عشري — ثنائي — سداسي عشر. نحفظه غيبا
Dec
Bin
Hex
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
مثال 1.5
نحوّل العدد السداسي عشر 2F16 إلى النظام العشري.
الحل:
نبدّل كل حرف بقيمته (F = 15) ونفكّك إلى مجموع قوى للأساس 16:
2F16 = 2·161 + 15·160
2F16 = 32 + 15
2F16 = 4710
2F16 = 4710
مثال 1.6
نحوّل العدد العشري 42710 إلى النظام السداسي عشر.
الحل:
نقسم على 16 مرة بعد مرة ونسجل البواقي. باقٍ أكبر من 9 نكتبه كحرف.
القسمة
الناتج
الباقي
نقرأ من الأسفل إلى الأعلى
427 : 16
26
11 = B
الخانة الأدنى وزنا ↓
26 : 16
1
10 = A
1 : 16
0
1
الخانة الأعلى وزنا ↑
42710 = 1AB16
فحص: 256 + 160 + 11 = 427.
42710 = 1AB16
بين الثنائي والسداسي عشر – המרה בין בינארי להקסדצימלי:
من الثنائي إلى السداسي عشر: نقسّم العدد إلى مجموعات من أربعة بتات، ابتداء من اليمين؛ إذا نقصت المجموعة اليسرى نكمّلها بأصفار. نبدّل كل مجموعة بالخانة السداسية عشرية التي تقابلها في الجدول. من السداسي عشر إلى الثنائي: نبدّل كل خانة بأربعة بتات.
مثال 1.7
نحوّل العدد الثنائي 10110101112 إلى النظام السداسي عشر.
الحل:
نقسّم إلى مجموعات من أربعة بتات من اليمين، ونضيف صفرين في اليسار لإكمال المجموعة الأخيرة:
0010 1101 0111
نبدّل كل مجموعة: 0010 = 2 ، 1101 = D ، 0111 = 7.
10110101112 = 2D716
10110101112 = 2D716
مثال 1.8
نحوّل العدد السداسي عشر C5A16 إلى النظام الثنائي.
الحل:
نبدّل كل خانة بأربعة بتات: C = 1100 ، 5 = 0101 ، A = 1010.
C5A16 = 1100 0101 10102
C5A16 = 1100 0101 10102
تدريب سريع — نحوّل من السداسي عشر إلى الثنائي وإلى العشري
הצגת מספרים שליליים – عرض الأعداد السالبة (Negative Numbers)
على الورق نكتب إشارة ناقص أمام العدد. في الدائرة الرقمية لا يوجد إلا 0 و 1، ولذلك نتفق على طريقة تجعل أحد البتات يخبرنا عن الإشارة. في كل الطرق نعمل بعدد ثابت من البتات (مثلا 4 أو 8)، والبت الأيسر هو بت الإشارة (סיבית הסימן): 0 للعدد الموجب و 1 للعدد السالب.
المتمم إلى 1 – שיטת המשלים ל-1:
المتمم إلى $1$(המשלים ל-1): نحصل عليه عندما نعكس كل بت في العدد: كل 0 يصبح 1 وكل 1 يصبح 0. في طريقة المتمم إلى 1 العدد السالب −N هو المتمم إلى 1 للعدد الموجب +N.
المتمم إلى 1 لعدد من n بتات · המשלים ל-1
C1(N) = (2n − 1) − N
الرمز
المعنى
وحدة القياس
C1(N)
المتمم إلى 1 للعدد N
—
n
عدد البتات
—
2n − 1
العدد الذي كل بتاته 1
—
مثال 1.9
نكتب العدد −13 بطريقة المتمم إلى 1، بـ 8 بتات.
الحل:
نكتب أولا العدد الموجب +13 بـ 8 بتات:
+13 = 0000 1101
نعكس كل بت:
−13 = 1111 0010
البت الأيسر هو 1، وهذا يدل على أن العدد سالب.
−13 = 1111 0010
انتبه: في طريقة المتمم إلى 1 يوجد للصفر شكلان: 0000 0000 (صفر موجب) و 1111 1111 (صفر سالب). هذا يربك الدوائر الحسابية، ولذلك تستعمل الحواسيب طريقة المتمم إلى 2.
المتمم إلى 2 – שיטת המשלים ל-2:
المتمم إلى $2$(המשלים ל-2): نحصل عليه عندما نحسب المتمم إلى 1 ثم نضيف 1. في طريقة المتمم إلى 2 العدد السالب −N هو المتمم إلى 2 للعدد الموجب +N.
المتمم إلى 2 لعدد من n بتات · המשלים ל-2
C2(N) = C1(N) + 1
C2(N) = 2n − N
الرمز
المعنى
وحدة القياس
C2(N)
المتمم إلى 2 للعدد N
—
C1(N)
المتمم إلى 1 للعدد N
—
n
عدد البتات
—
مثال 1.10
نكتب العدد −13 بطريقة المتمم إلى 2، بـ 8 بتات.
الحل:
العدد الموجب: +13 = 0000 1101. نعكس كل بت لنحصل على المتمم إلى 1، ثم نضيف 1:
1
1
1
1
0
0
1
0
المتمم إلى 1
+
1
=
1
1
1
1
0
0
1
1
المتمم إلى 2
فحص بالقانون الثاني: 28 − 13 = 243 ، وهذا هو 111100112.
−13 = 1111 0011
ملاحظة:طريقة مختصرة: نمرّ على العدد الموجب من اليمين إلى اليسار. ننسخ البتات كما هي حتى أول 1 (وننسخه هو أيضا)، ثم نعكس كل البتات التي على يساره. مثلا 0000 1100 ← 1111 0100.
كيف نقرأ عددا مكتوبا بالمتمم إلى 2؟ إذا كان البت الأيسر 0 فالعدد موجب ونحوّله كالعادة. إذا كان 1 فالعدد سالب: نحسب المتمم إلى 2 له لنحصل على مقداره، ونضع أمامه إشارة ناقص.
مثال 1.11
العدد 1110 1010 مكتوب بطريقة المتمم إلى 2 بـ 8 بتات. ما هي قيمته العشرية؟
الحل:
البت الأيسر 1 ← العدد سالب. نحسب المتمم إلى 2 له:
C1 = 0001 0101
C2 = 0001 0101 + 1 = 0001 0110
مقدار العدد: 000101102 = 2210 ، ولذلك:
1110 1010 = −22
كل الأعداد التي نستطيع كتابتها بـ 4 بتات بطريقة المتمم إلى 2: من −8 حتى +7
مجال الأعداد بطريقة المتمم إلى 2 · תחום המספרים בשיטת המשלים ל-2
−2n−1 ≤ N ≤ 2n−1 − 1
الرمز
المعنى
وحدة القياس
n
عدد البتات
—
N
العدد المُشار (مع إشارة)
—
ملاحظة: بـ 8 بتات: من −128 حتى +127. للصفر شكل واحد فقط، وهذه أفضلية المتمم إلى 2.
تدريب سريع — الأعداد مكتوبة بالمتمم إلى 2 بـ 8 بتات. ما قيمتها العشرية؟
11111 1100
21111 0001
31000 0000
40111 1111
51100 1110
61011 0100
الإجابات:1−42−153−12841275−506−76
חיבור וחיסור בבסיס בינארי – الجمع والطرح في النظام الثنائي (Binary Addition & Subtraction)
الجمع الثنائي – חיבור בינארי:
نجمع عمودا بعد عمود من اليمين إلى اليسار، كما في الجمع العشري. الفرق الوحيد: عندما يصل المجموع إلى 2 نكتب 0 ونحمل1 إلى العمود التالي. الواحد المحمول يسمى الحمل (נשא, Carry).
قواعد الجمع في عمود واحد: A و B البتان، Cin الحمل الداخل، S المجموع و Cout الحمل الخارج
نجمع العددين الثنائيين 10112 و 01102 ونفحص النتيجة في النظام العشري.
الحل:
1
1
1
الحمل
1
0
1
1
+
0
1
1
0
=
1
0
0
0
1
المجموع
فحص: 11 + 6 = 17 ، وفعلا 100012 = 1710.
10112 + 01102 = 100012
مثال 1.13
نجمع 1101112 + 0111012.
الحل:
1
1
1
1
1
1
الحمل
1
1
0
1
1
1
+
0
1
1
1
0
1
=
1
0
1
0
1
0
0
فحص: 55 + 29 = 84.
1101112 + 0111012 = 10101002
تدريب سريع — نجمع في النظام الثنائي
1101 + 011
21100 + 0101
31111 + 0001
410110 + 01011
511011 + 10111
6101010 + 010111
الإجابات:110002100013100004100001511001061000001
الطرح الثنائي – חיסור בינארי:
نطرح عمودا بعد عمود من اليمين. عندما نحتاج إلى طرح 1 من 0نستلف1 من العمود الذي على اليسار؛ الواحد المُستلَف قيمته 2 في عمودنا، ولذلك 102 − 1 = 1. الاستلاف يسمى بالعبرية לווה (Borrow).
العمود الأيمن: 1 − 0 = 1. العمود الثاني: 0 − 1 ← نستلف من العمود الثالث: 102 − 1 = 1. العمود الثالث: بعد الاستلاف بقي فيه 0، و 0 − 1 ← نستلف من العمود الرابع: 102 − 1 = 1. العمود الرابع: بقي فيه 0، و 0 − 0 = 0.
1
1
0
1
−
0
1
1
0
=
0
1
1
1
فحص: 13 − 6 = 7.
11012 − 01102 = 01112
الطرح بواسطة جمع المتمم إلى 2 – חיסור באמצעות חיבור המשלים ל-2:
الحاسوب لا يبني دائرة خاصة للطرح. بدل أن يحسب A − B هو يحسب A + (−B): يحوّل B إلى متممه إلى 2 ثم يجمع بنفس دائرة الجمع. نعمل بعدد ثابت من البتات، والحمل الذي يخرج من البت الأيسر نهمله.
نكتب العددين بنفس عدد البتات.
نحسب المتمم إلى 2 للمطروح B.
نجمع A مع المتمم.
نهمل الحمل الخارج من البت الأيسر. إذا كان بت الإشارة في النتيجة 0 فالنتيجة موجبة؛ إذا كان 1 فالنتيجة سالبة ومكتوبة بالمتمم إلى 2.
بت الإشارة 1 ← النتيجة سالبة. مقدارها هو المتمم إلى 2 لها: 000001112 = 710.
6 − 13 = 1111 1001 = −7
انتبه: إذا جمعنا عددين موجبين وخرجت النتيجة مع بت إشارة 1، أو جمعنا عددين سالبين وخرجت مع بت إشارة 0، فالنتيجة خاطئة: هي أكبر من المجال الذي تسمح به البتات. هذه الحالة تسمى الفيضان (גלישה, Overflow). مثلا بـ 8 بتات: 100 + 50 = 150 ، وهذا أكبر من +127.
تدريب سريع — نطرح بواسطة جمع المتمم إلى 2، بـ 8 بتات. نكتب النتيجة الثنائية وقيمتها
شيفرة BCD(קוד BCD): هي طريقة لكتابة عدد عشري حيث نكتب كل رقم عشري لوحده بأربعة بتات. الاسم اختصار لـ Binary Coded Decimal: «عشري مشفّر بالثنائي».
في شيفرة BCD نستعمل عشرة تركيبات فقط من أصل ستة عشر: من 0000 (الرقم 0) حتى 1001 (الرقم 9). التركيبات الستة من 1010 حتى 1111غير مسموحة، لأنه لا يوجد رقم عشري يقابلها.
Dec
BCD
0
0000
1
0001
2
0010
3
0011
4
0100
Dec
BCD
5
0101
6
0110
7
0111
8
1000
9
1001
تركيبات غير مسموحة
Bin
BCD
1010
—
1011
—
1100
—
1101
—
1110
—
1111
—
مثال 1.17
نكتب العدد العشري 279 بشيفرة BCD، ونقارن مع كتابته في النظام الثنائي.
الحل:
نبدّل كل رقم عشري بأربعة بتات: 2 → 0010 ، 7 → 0111 ، 9 → 1001.
27910 = 0010 0111 1001BCD
في النظام الثنائي العادي نحوّل العدد كله مرة واحدة:
ما هو العدد العشري المكتوب بشيفرة BCD هكذا: 1000 0101 0011 ؟
الحل:
نقرأ كل مجموعة من أربعة بتات كرقم عشري واحد: 1000 → 8 ، 0101 → 5 ، 0011 → 3.
1000 0101 0011BCD = 85310
ملاحظة: لماذا نحتاج BCD إذا كانت تحتاج إلى بتات أكثر؟ لأنها مريحة للعرض: كل أربعة بتات تذهب مباشرة إلى شاشة عرض واحدة ذات سبع قطع (תצוגת 7 מקטעים). نجدها في الساعات الرقمية، في العدادات وفي الآلات الحاسبة. سنقابلها ثانية في الفصل 7 وفي الفصل 11.
العدد 279 على ثلاث شاشات عرض: كل شاشة تستقبل أربعة بتات BCD
نبرهن بمثال من 4 بتات أن المتمم إلى 2 للمتمم إلى 2 يعيدنا إلى العدد الأصلي. نأخذ العدد 0110.
الإجابات:0110 → 1010 → 0110
27.
عنوان في ذاكرة الحاسوب هو 1F4016. (أ) ما هو العنوان في النظام العشري؟ (ب) ما هو العنوان الذي يأتي بعده بـ 1610 خانة، في النظام السداسي عشر؟
الإجابات: (أ) 8000 (ب) 1F5016
28.
نضرب العدد 10112 في 2 ، ثم في 4 ، ثم في 8. ماذا نلاحظ؟
الإجابات:101102 ، 1011002 ، 10110002 — في كل ضرب في 2 يُضاف صفر في اليمين (إزاحة إلى اليسار)
الإجابات النهائية لأسئلة الفصل
1.14082 = 4·103 + 0·102 + 8·101 + 2·100 ؛ وزن الرقم 8 هو 101 = 10
שאלות בגרות – أسئلة بجروت للفصل 1
الأسئلة التالية مأخوذة كما هي من امتحانات البجروت لوزارة التربية والتعليم، نموذج 845381 (מערכות חשמל)، وهي من فصل الأنظمة الرقمية فيه، وتظهر بالعبرية كما في الامتحان. تحت كل سؤال ترجمة البنود إلى العربية والإجابات النهائية. الحل الكامل، خطوة بعد خطوة وبالعربية، موجود في موقع المؤلف: نضغط على الرابط تحت السؤال.
بجروت 2020 السؤال 9 — أنظمة العدّ وبوّابات منطقيّة