إذا أردنا تمثيل الأرقام العشرية بوساطة شيفرة معينة باستخدام النظام الثنائي، فكم خانة ثنائية يلزمنا ؟
الجواب في المعادلة التالية:
حيث أن n تمثل عدد الخانات اللازمة. وباستخدام اللوغاريتم الطبيعي يمكن إيجاد nكما يلي:
nln2 = ln10
n x 0.69315 = 2.3026
n = 3.32
أي يلزمنا خانة لتمثيل عشرة أرقام.من الواضح أن n يجب أن تكون عددًا صحيحًا، كما أن3 خانات لا تكفي للتمثيل.إذن لابد من استخدام 4خانات لتمثيل الأعداد من ، ولكن 4خانات تعطي احتمالات عددها 16حيث أن، وهذه الاحتمالات مبينة في الجدول (3-1).
ما هي الاحتمالات التي يمكن اختيارها من بين 16 احتمالاً لتمثيل الأرقام العشرية؟
الجواب هو: لو بدأنا بتمثيل الرقم ((0)) فيكون هناك 16 احتمالاً لتمثيله ويكون هناك 15 احتمالاً لتمثيل الواحد، ويكون هناك 14احتمالاً لتمثيل الاثنين وهكذا. وبذلك يكون عدد الاحتمالات حسب قوانين التوافيق والتباديل كما يلي:
هذا يساوي عدداً كبيرًا جدًا من الاحتمالات، كل منها ذو أربعة خانات ويمكن اختيار الأنسب منها للاستخدام داخل الحاسوب وذلك حسب طبيعة الهدف المراد تحقيقه.
ويمكن تقسيم الشيفرة إلى قسمين رئيسيين: الشيفرة الرقمية الموزونة والشيفرة الرقمية غير الموزونة.
الاحتمال
الرقم
0 0 0 0 1
1 0 0 0 2
0 1 0 0 3
1 1 0 0 4
0 0 1 0 5
1 0 1 0 6
0 1 1 0 7
1 1 1 0 8
0 0 0 1 9
1 0 0 1 10
0 1 0 1 11
1 1 0 1 12
0 0 1 1 13
1 0 1 1 14
0 1 1 1 15
1 1 1 1 16
جدول (3-1)احتمالات العدد الثنائي المكون من 4 خانات
3-1-1الشيفرة الرقمية الموزونة الموجبة:
هي شيفرة ذات أربع خانات ثنائية، كل خاناتها موجبة ولها أوزان محددة ويحسب الرقم العشري للشيفرة عن طريق جميع أوزان الخانات ذات القيمة (1) ومن أهمها الأوزان التالية:
وهناك غيرها كثير.
وفيما يلي أمثلة تبين بعض الأرقام بالنظام العشري ممثله ببعض أنواع هذه الشيفرات:
مثال1: اكتب الرقم(6)ممثلاً بالشيفرة
الحل: نكتب وزن الشيفرة
ثم تقول أن هي عبارة عن مجموع فنضع 1 تحت ((2))و1 تحت ((4))من الشيفرة كما يلي:
4 3 2 1 وزن الشيفرة
1 0 1 0 العدد ممثلاً بالشيفرة
فبكون الرقم هو الشيفرة للرقم ((6))ممثلاً بالشيفرة الرقمية الموجبة ذات الوزن
مثال 2: اكتب العدد ممثلاً بالشيفرة ذات الوزن
الحل: يلزم هنا ثمانية خانات لتمثيل هذا العدد كما يلي:
7 4 2 1
وزن الشيفرة
0 0 1 1
شيفرة الرقم 3
0 1 0 1
شيفرة الرقم 5
إذن العدد
تصبح ممثلاً بالشيفرة 7421
3-1-2 الشيفرة الرقمية الموزونة السالبة:
هي شيفرة ذات أربع خانات ولكن تكون إحدى هذه الخانات على الأقل سالبة القيمة وأشهرها الشيفرة ذات الوزن حيث أن خانتين فيها ذات قيمة سالبة هما، وفيما يلي تمثيل الأرقام العشرية بهذه الشيفرة:
أعداد العشرية شيفرة
0 0000
1 0111
2 0110
3 0101
4 0100
5 1011
6 1010
7 1001
8 1000
9 1111
لإيجاد شيفرة العدد 5 فإننا نعبر عنه بالوزن وبذلك نضع 1 تحت خانة((
) و1 تحت خانة((2-))و1 تحت خانة ((-1))
مثال 3: مثل العدد بالوزن
الحل:
8 4 -2 -1
الوزن
1 0 0 1 العدد
7
0 1 0 1 العدد
3
إذن العدد 73 ممثلا بالشيفرة هو
3-2 شيفرة الأرقام العشرية(NBCD Natural):
الممثلة بالنظام الثنائي الطبيعي Binary Coded Decimal
إن أنواع الشيفرات التي يتم فيها تمثيل العدد العشري بأربع خانات ثنائية تسمى بشيفرة الأرقام العشرية الممثلة بالنظام الثنائي (BCD) وأهمها على الإطلاق هو الوزن الذي يسمى بشيفرة الأرقام العشرية الممثلة بالنظام الثنائي الطبيعي ((NBCD)).
والجدول (3-2) يبين الأرقام العشرية من بوساطة هذه الشيفرة.
الأرقام العشرية 8421
النظام الثائي
0 0000 0000
1 0001 0001
2 0010 0010
3 0011 0011
4 0100 0100
5 0101 0101
6 0110 0110
7 0111 0111
8 1000 1000
9 1001 1001
جدول (3-2) تمثيل الأرقام العشرية بوساطة النظام الثنائي الطبيعي.
من المقارنة بين الأعداد العشرية الممثلة بالنظام الثنائي والوزن نلاحظ أن النتيجة واحدة بشرط أن تمثل هذه الأرقام بأربع خانات ولذلك سميت الشيفرة بالشيفرة الطبيعية لأنها هي الشيفرة الوحيدة بين كل شيفرات BCD التي تعطينا قيم الأرقام العشرية ممثلة بالنظام الثنائي.
3-3الشيفرة الرقمية غير الموزونة (Unweighted Numeric Code):
هناك الكثير أيضًا من الشيفرات ذات الخانات الأربعة ولكن لا يوجد وزن معين لها وتسمى بالشيفرة غير الموزونة ولكل منها استخداماته ومميزاته ومن أشهرها شيفرة جراي والشيفرة (زائد ثلاثة).
3-3-1 شيفرة جراي Gray Code:
يستفاد منها في عمليات التحويل التناظري الرقمي (A\D Conversion) وفي أجهزة الإدخال والإخراج وفي أجهزة أخرى ولكن لا يستفاد منها في العمليات الحسابية.
والجدول(3-3) يبين الأرقام العشرية من 0إلى15 ممثلة بالنظام الثنائي وكذلك بشيفرة جراي.
•أما عملية التحويل من النظام الثنائي إلى شيفرة جراي فتتم بالطريقة التالية:
1-نترك أول خانة على اليسار في الرقم الثنائي كما هي لتكون أول خانة على اليسار في شيفرة جراي.
2-نجمع الخانة على أقصى اليسار في الرقم الثنائي مع الخانة التي تليها ونأخذ المجموع ليكون الخانة الثانية من اليسار في شيفرة جراي. ونهمل المحمل(Carry) في حالة حدوثه.
3-نجمع الخانة الثانية من اليسار في الرقم الثاني مع الخانة الثالثة ونأخذ المجموع ونهمل المحمل، وهكذا حتى نهاية العدد.
شيفرة جراي الأعداد الثنائية الأعداد العشرية
0000 0000 0
0001 0001 1
0011 0010 2
0010 0011 3
0110 0100 4
0111 0101 5
0101 0110 6
0100 0111 7
1100 1000 8
1101 1001 9
1111 1010 10
1110 1011 11
1010 1100 12
1011 1101 13
1001 1110 14
1000 1111 15
جدول (3-3) الأرقام العشرية (0-15) ممثلة بالنظام الثنائي و شيفرة جراي
مثال: حول العدد إلى شيفرة جراي؟
وبطريقة أخري: يمكن استخدام بوابة (استثناء، أو) في جمع كل عددين ثنائيين متجاورين مع إبقاء العدد على أقصى اليسار كما هو.
•أما عملية التحويل من شيفرة جراي إلى النظام الثنائي فتتم بالطريقة التالية:
مثال: حول شيفرة جراي إلى النظام الثنائي؟
الحل:
1- نبقي الرقم على أقصى اليسار كما هو (الرقم1).
2- نجمع هذا الرقم مع الرقم الثاني من شيفرة جراي ونكتب المجموع ليمثل الرقم الثاني في العدد الثنائي ونهمل المحمل في حالة حدوثه.
3- نجمع ناتج الخطوة 2 مع الرقم الثالث من شيفرة جراي ليمثل الرقم الثالث من العدد الثنائي وهكذا حتى نصل إلى نهاية شيفرة جراي.
لا حظ أننا حصلنا على نفس العدد هو ومن أهم صفات هذه الشيفرة، هي أن كل عدد ممثل بهذه الشيفرة يختلف عن سابقه بتغير خانة واحدة. فبالانتقال من 6 إلى 7 تتغير خانة واحدة كذلك من 7 إلى 8 وهي الصفة التي تستغل في تصميم بعض أجهزة التحكم في تحويل الكميات التناظرية إلى رقمية (Analogue to Digital Conversion) ولوجود هذه الخاصية فإن شيفرة جراي أيضًا تأتي ضمن نوع آخر من الشيفرات تسمى الشيفرة المنعكسة.
3-3-2 الشيفرة (الزائد ثلاثة) Excess-3 Code:
وهي شيفرة من نوع BCD ويتم الحصول عليها عن طريق إضافة الرقم (3)إلى كل من أرقام العدد المعني قبل تحويله إلى BCD.
مثال: حول العدد إلى الشيفرة (زائد ثلاثة)
الحل:
الحل المطلوب
والجدول(3-4) يبين الأرقام العشرية ممثلة بهذه الشيفرة.
أرقام عشرية الشيفرة ((زائد ثلاثة))
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100
10 0100 0011
11 0100 0100
12 0100 0101
جدول(3-4) الأرقام العشرية ممثلة بالشيفرة ((زائد ثلاثة))
ومن مميزات هذه الشيفرة أنها شيفرة مكملة ذاتيًا (Self Complementing). والشيفرة المكملة ذاتيًا، هي تلك الشيفرة التي يكون فيها المكمل لواحد لهذه الشيفرة، يمثل المكمل لتسعة لمكافئه العشري ومنها الشيفرة (زائد ثلاثة) والشيفرات ذات الأوزان
مثال للتوضيح: لدينا العدد . المكمل لتسعة لهذا العدد هو
لنمثل العدد تسعة ومكملة بالشيفرة فماذا نجد؟
4221 4221 4221
1001 0101 1000 435
0110 1010 0111 564
الجواب: إن المكمل لتسعة للعدد ممثلاً بالشيفرة هو المكمل لواحد للعدد ممثلاً بالشيفرة ولهذا فهو مكمل ذاتيًا.
3-4 اكتشاف الأخطاء:
ليس من المهم فقط إرسال البيانات داخل الحاسوب، بل من المهم أيضًا التأكد أن البيانات المرسلة قد وصلت بالشكل الصحيح، حيث يمكن أن تتغير قيمة البيانات المرسلة نتيجة لأسباب من أهمها وجود الضجيج noise. ففي أنظمة الحاسوب إذا افترضنا أن البيانات المرسلة هي فمن الممكن أن يتحول الصفر إلى الواحد، أو العكس، وقد يكون التغير في البيانات لأكثر من خانة واحدة.
وهناك طرق مختلفة لاكتشاف الأخطاء وتصحيحها، وسنتكلم عن طرق بسيطة وشائعة لاكتشاف الأخطاء التي قد تحدث داخل الحاسوب(ناتجة عن الحاسوب نفسه) ومن أهم هذه الطرق:
طريقة إضافة خانة التطابق وكذلك استعمال بعض أنواع الشيفرات التي تحتوي على خانة التطابق.
•خانة التطابق Parity Bit:
(أولاً ): التطابق المفرد Single Parity:
وهي طريقة تصلح لاكتشاف الخطأ إذا كان قد حصل في خانة ثنائية واحدة فقط وهناك نوعان من التطابق المفرد:
1.التطابق الزوجيEven Parity:
وفي هذه الطريقة تضاف إلي كل سطر بيانات خانة جديدة (إما واحد أو صفر)بحيث يصبح عدد خانات (الواحد) في السطر عددًا زوجيًا.
•مثال: إذا كانت البيانات المرسلة هي
فإن عدد خانات (الواحد ( يساوي( (2فيصبح العدد بعد إضافة خانة التطابق كما يلي:
وإذا كانت البيانات
فإنها تصبح
ففي المثال الأخير لو تغيرت إحدى الخانات فإنه يمكن اكتشاف أن البيانات خاطئه ولكن دون تحديد الخانة الخاطئه بالضبط.
فمثلاً لو وصلت البيانات المرسلة كما يلي:فإن عدد خانات (الواحد) يكون (3) وهو عدد فردي بينما الأصل حسب هذه الطريقة أن يكون زوجيًا.