التشفير الثنائي الطبيعي
المبدأ : لتمثيل الأرقام نستعمل النظام الثنائي
| 0000 | 0 | | 000 | 0 | | 00 | 0 |
| 0001 | 1 | | 001 | 1 | | 01 | 1 |
| 0010 | 2 | | 010 | 2 | | 10 | 2 |
| 0011 | 3 | | 011 | 3 | | 11 | 3 |
| 0100 | 4 | | 100 | 4 |
| 0101 | 5 | | 101 | 5 |
| 0110 | 6 | | 110 | 6 |
| 0111 | 7 | | 111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | 10 |
| 1011 | 11 |
| 1100 | 12 |
| 1101 | 13 |
| 1110 | 14 |
| 1111 | 15 |
تشفير غراي (GRAY)
المبدأ: هذا التشفير صعب الفهم قليلا وللتعرف على مبدأه نأخذ المثال التالي :
كيف نمثل الأرقام العشرية 0 و 1 و 2 و 3
باستعمال النظام الثنائي (التشفير الثنائي الاعتيادي)، لدينا :
بالنسبة لـ 0 -----> 0 0 0 و للحصول على 1 نضيف 1 لـ 000
بالنسبة لـ 1 -----> 1 0 0 و للحصول على 2 نضيف 1 لـ 001
بالنسبة لـ 2 -----> 0 1 0 و للحصول على 3 نضيف 1 لـ 010
بالنسبة لـ 3 -----> 1 1 0 و للحصول على 4 نضيف 1 لـ 011
: :
وباستعمال طريقة غراي (تشفير GRAY)، لدينا : تغيير زوج مرة واحدة للحصول على العدد التالي
بالنسبة لـ 1 -----> 1 0 0 و للحصول على 2 نغير الزوج 1 ونعوضه بـ 1 ، لماذا ؟
نبدأ دائما من الزوج 0 ثم الزوج 1 ثم الزوج 2 وهكذا...
إذا غيرنا حالة الزوج 0 الذي يساوي 1 إلى 0 سنحصل على الرقم ( 0 == 0 0 0) لكنه موجود
وبما أن التغيير مرة واحدة فقط ننتقل إلى الزوج المجاور يعني الزوج 1 الذي يساوي 0 ونغيره إلى 1 وبالتالي نحصل
على 2 التي تصبح تساوي 011 إذن:
بالنسبة لـ 2 -----> 1 1 0 و للحصول على 3 نغير الزوج 0 ونعوضه بـ 0 ، لماذا ؟
نبدأ دائما من الزوج 0 ثم الزوج 1 ثم الزوج 2 وهكذا...
إذا غيرنا حالة الزوج 0 الذي يساوي 1 إلى 0 سنحصل على رقم جديد الذي هو( 3 == 0 1 0) وهذا ما نريده.
ملاحظة : إذا غيرنا حالة الزوج 1 الذي يساوي 1 إلى 0 سنحصل على الرقم ( 1 == 1 0 0) لكنه موجود
إذن يكفي تغيير الزوج 0 الذي يساوي 1 إلى 0 وبالتالي نحصل على 3 التي تصبح تساوي 010 إذن:
بالنسبة لـ 3 -----> 0 1 0 و للحصول على 4 نغير الزوج 2 ونعوضه بـ 1 ، لماذا ؟
نبدأ دائما من الزوج 0 ثم الزوج 1 ثم الزوج 2 وهكذا...
- إذا غيرنا حالة الزوج 0 الذي يساوي 0 إلى 1 سنحصل على الرقم (2 == 1 1 0) لكنه موجود إذن ننتقل إلى الزوج 1
- إذا غيرنا حالة الزوج 1 الذي يساوي 1 إلى 0 سنحصل على الرقم (0 == 0 0 0) لكنه موجود إذن ننتقل إلى الزوج 2
- إذا غيرنا حالة الزوج 2 الذي يساوي 0 إلى 1 سنحصل على رقم جديد وهو ( 4 == 0 1 1) إذن:
بالنسبة لـ 4 -----> 0 1 1 و هكذا...
بالنسبة لـ 5 -----> 1 1 1
:
:
خلاصة:
| 0000 | 0 | | 000 | 1 | | 00 | 0 |
| 0001 | 1 | | 001 | 1 | | 01 | 1 |
| 0011 | 2 | | 011 | 2 | | 11 | 2 |
| 0010 | 3 | | 010 | 3 | | 10 | 3 |
| 0110 | 4 | | 110 | 4 |
| 0111 | 5 | | 111 | 5 |
| 0101 | 6 | | 101 | 6 |
| 0100 | 7 | | 100 | 7 |
| 1100 | 8 |
| 1101 | 9 |
| 1111 | 10 |
| 1110 | 11 |
| 1010 | 12 |
| 1011 | 13 |
| 1001 | 14 |
| 1000 | 15 |
التشفير BCD (أو DCB أو ع.م.ز أي العشري مشفر زوجيا)
المبدأ : لتمثيل الأرقام العشرية نعطي لكل رقم عشري 4 أزواج من النظام الثنائي يعني :
0 1 2 3 4 5 6 7 8 9 |
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 |
ملاحظة : هذا التشفير يشبه إلى حد ما التشفير باستعمال النظام الثنائي لكن هناك فرق في تمثيل الأعداد
مثلا: باستعمال التشفير الثنائي الاعتيادي لدينا : 2(10000000) = 10(128)
وباستعمال التشفير BCD أو DCB أو ع.م.ز (العشري مشفر زوجيا) لدينا : 8 2 1
1000 0010 0001
إذن : (1000 0010 0001 ) = 128
العمليات الحسابية في هذا التشفير جد معقدة لنأخذ مثالين :
مثال 1: بسيط و سهل
0011 0010 0001 3 2 1
0101 + 0111 + 0110 + ↔ 5 7 6 +
|1000| |1001| |0111| 8 9 7
8 9 7
مثال 2: معقد و صعب ولا يمكن حله على ما أظن...
0111 0011 0010 1001 7 3 2 9
0001 + 1000 + 0000 + 0000 + ↔ 1 8 +
|1000| |1011| |0010| |1001| 8 1 3 9
8 ؟ 2 9
لتجاوز هذا المشكل نستعمل التشفير في الفقرة التالية.
التشفير 3+BCD (أو 3+DCB أو ع.م.ز+3 أي العشري مشفر زوجيا+3)
المبدأ : نضيف 3 أي 0011 على كل رقم من النظام الزوجي ونحصل على :
0 1 2 3 4 5 6 7 8 9 |
0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 |
العمليات الحسابية في هذا التشفير أسهل من التشفير السابق :
عموما ، للحصول على نتيجة الجمع في ع.م.ز+3 (BCD+3) يجب إضافة 3 إذا كان هناك محتفظ به أو ننقص 3 في الحالة المعاكسة ( 1101 = 0011 - = 3 - ) لنأخذ مثالين :
مثال 1: مع المحتفظ به
المحتفظ به 1 | 1
1010 | 7
1000 + |<=> 5 +
0010 0001 | 2 1
(3) 0011 0011 |
0101 0100 <-------- بــ ع.م.ز+ 3 (أنظر إلى الجدول)
2 1
مثال 2 : بدون المحتفظ به
0110 3
1000 + <=> 5 +
1110 8
(3-) 1101 +
1011(1 <-------- بــ ع.م.ز+ 3 (أنظر إلى الجدول)
8 :..................................... تجاوز يحذف
تأليف
المؤلف الأصلي: مجهول
ترجمة بتصرف: محمد عبد الرحمان (الدار البيضاء - المغرب)