النظام العشري المشفر ثنائياً

في أنظمة الحوسبة والإلكترونيات ، يُعدّ النظام العشري المشفر ثنائياً ( BCD ) فئة من التشفيرات الثنائية للأعداد العشرية حيث يُمثّل كل رقم بعدد ثابت من البتات ، عادةً أربعة أو ثمانية. في بعض الأحيان، تُستخدم أنماط بتات خاصة للإشارة أو مؤشرات أخرى (مثل الخطأ أو تجاوز السعة).
في الأنظمة الموجهة بالبايت (أي معظم أجهزة الكمبيوتر الحديثة)، يشير مصطلح BCD غير المضغوط [ 1 ] عادةً إلى بايت كامل لكل رقم (غالبًا ما يتضمن إشارة)، بينما يقوم BCD المضغوط عادةً بتشفير رقمين داخل بايت واحد من خلال الاستفادة من حقيقة أن أربعة بتات كافية لتمثيل النطاق من 0 إلى 9. ومع ذلك، قد يختلف التشفير الدقيق المكون من أربعة بتات لأسباب تقنية (مثل الزيادة 3 ).
تُسمى الحالات العشر التي تُمثل رقمًا من أرقام BCD أحيانًا بالرباعيات [ 2 ] [ 3 ] ( ويُعرف النصف بايت اللازم عادةً لتخزينها أيضًا باسم الرباعية)، بينما تُسمى الحالات غير المستخدمة، أو التي لا تُهم، بالرباعيات الزائفة [ de ] ، [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] أو الأرقام العشرية الزائفة ، [ 3 ] أو الأرقام العشرية الزائفة . [ 9 ] [ 10 ] [ ملاحظة 1 ]
تتمثل الميزة الرئيسية لنظام BCD، مقارنةً بالأنظمة الثنائية الموضعية ، في دقته العالية في تمثيل وتقريب الأعداد العشرية، بالإضافة إلى سهولة تحويله إلى تمثيلات تقليدية قابلة للقراءة البشرية. أما عيوبه الرئيسية فتتمثل في زيادة طفيفة في تعقيد الدوائر اللازمة لتنفيذ العمليات الحسابية الأساسية، فضلاً عن انخفاض طفيف في كثافة التخزين.
تم استخدام نظام BCD في العديد من أجهزة الكمبيوتر العشرية المبكرة ، ويتم تنفيذه في مجموعة تعليمات الأجهزة مثل سلسلة IBM System/360 وسلالاتها، و VAX من شركة Digital Equipment Corporation ، و Burroughs B1700 ، ومعالجات سلسلة Motorola 68000 .
لم يعد نظام BCD شائع الاستخدام كما كان في السابق، وهو غير متوفر أو محدود في مجموعات التعليمات الحديثة (مثل ARM و x86 في الوضع الطويل ). ومع ذلك، لا تزال صيغ الأعداد العشرية ذات النقطة الثابتة والعشرية ذات النقطة العائمة مهمة وتُستخدم في الحوسبة المالية والتجارية والصناعية، حيث لا يمكن التسامح مع أخطاء التحويل الدقيقة وأخطاء التقريب الكسري المتأصلة في صيغ الأعداد العشرية ذات النقطة العائمة الثنائية. [ 11 ]
خلفية
تستفيد BCD من حقيقة أن أي رقم عشري يمكن تمثيله بنمط مكون من أربعة بتات. ومن الطرق الواضحة لترميز الأرقام هي BCD الطبيعي (NBCD)، حيث يُمثَّل كل رقم عشري بقيمته الثنائية المقابلة المكونة من أربعة بتات، كما هو موضح في الجدول التالي. ويُطلق على هذا الترميز أيضًا اسم "8421".
| الرقم العشري | BCD | |||
|---|---|---|---|---|
| 8 | 4 | 2 | 1 | |
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 |
| 3 | 0 | 0 | 1 | 1 |
| 4 | 0 | 1 | 0 | 0 |
| 5 | 0 | 1 | 0 | 1 |
| 6 | 0 | 1 | 1 | 0 |
| 7 | 0 | 1 | 1 | 1 |
| 8 | 1 | 0 | 0 | 0 |
| 9 | 1 | 0 | 0 | 1 |
يُشار إلى هذا النظام أيضًا باسم نظام الترميز العشري الثنائي البسيط ( SBCD ) أو BCD 8421 ، وهو الترميز الأكثر شيوعًا. [ 12 ] تشمل الترميزات الأخرى ما يُسمى بـ "4221" و"7421" - نسبةً إلى الوزن المستخدم للبتات - و" الفائض 3 ". [ 13 ] على سبيل المثال، الرقم 6 في نظام BCD، 0110'bفي تدوين 8421، يكون 1100'bفي 4221 (يوجد ترميزان ممكنان)، 0110'bوفي 7421، بينما في الفائض 3 يكون 1001'b( 6 + 3 = 9 ).
| قليل | وزن | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | تعليق |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ثنائي |
| 3 | 4 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
| 2 | 2 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | |
| اسم | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | عشري | |
| 8421 (XS-0) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ nb 2 ] | |
| 7421 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 18 ] [ 19 ] [ 20 ] | |||||||
| أيكن (2421) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ nb 3 ] | |||||||
| إكسيس-3 (XS-3) | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ nb 2 ] | |
| إكسيس-6 (XS-6) | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 18 ] [ nb 2 ] | |
| القفز عند النقطة 2 ( 2421) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 16 ] [ 17 ] | |||||||
| القفز عند 8 (2421) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 21 ] [ 22 ] [ 16 ] [ 17 ] [ nb 4 ] | |||||||
| 4221 (I) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 16 ] [ 17 ] | |||||||
| 4221 (II) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 21 ] [ 22 ] | |||||||
| 5421 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 18 ] [ 14 ] [ 16 ] [ 17 ] | |||||||
| 5221 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 14 ] [ 16 ] [ 17 ] | |||||||
| 5121 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 19 ] | |||||||
| 5311 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 16 ] [ 17 ] | |||||||
| أبيض (5211) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 23 ] [ 18 ] [ 14 ] [ 16 ] [ 17 ] | |||||||
| 5211 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [ 24 ] | |||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
| شريط مغناطيسي | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ 15 ] | |||||||
| بولس | 1 | 3 | 2 | 6 | 7 | 5 | 4 | 0 | 8 | 9 | [ 25 ] | |||||||
| رمادي | 0 | 1 | 3 | 2 | 6 | 7 | 5 | 4 | 15 | 14 | 12 | 13 | 8 | 9 | 11 | 10 | [ 26 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ nb 2 ] | |
| جليكسون | 0 | 1 | 3 | 2 | 6 | 7 | 5 | 4 | 9 | 8 | [ 27 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] | |||||||
| ليدلي | 0 | 1 | 3 | 2 | 7 | 6 | 4 | 5 | 8 | 9 | [ 28 ] | |||||||
| 4311 | 0 | 1 | 2 | 3 | 5 | 4 | 6 | 7 | 8 | 9 | [ 19 ] | |||||||
| مركز أبحاث الطيران | 0 | 1 | 2 | 4 | 3 | 5 | 6 | 7 | 9 | 8 | [ 29 ] | |||||||
| كلار | 0 | 1 | 2 | 4 | 3 | 9 | 8 | 7 | 5 | 6 | [ 2 ] [ 3 ] | |||||||
| بيثريك (RAE) | 1 | 3 | 2 | 0 | 4 | 8 | 6 | 7 | 9 | 5 | [ 30 ] [ 31 ] [ nb 5 ] | |||||||
| أوبراين الأول (واتس) | 0 | 1 | 3 | 2 | 4 | 9 | 8 | 6 | 7 | 5 | [ 32 ] [ 14 ] [ 16 ] [ 17 ] [ nb 6 ] | |||||||
| 5-حلقي | 0 | 1 | 3 | 2 | 4 | 5 | 6 | 8 | 7 | 9 | [ 28 ] | |||||||
| تومبكينز الأول | 0 | 1 | 3 | 2 | 4 | 9 | 8 | 7 | 5 | 6 | [ 33 ] [ 14 ] [ 16 ] [ 17 ] | |||||||
| ليبيل | 0 | 1 | 2 | 3 | 4 | 9 | 8 | 7 | 6 | 5 | [ 34 ] [ 35 ] [ 14 ] | |||||||
| أوبراين الثاني | 0 | 2 | 1 | 4 | 3 | 9 | 7 | 8 | 5 | 6 | [ 32 ] [ 14 ] [ 16 ] [ 17 ] | |||||||
| تومبكينز الثاني | 0 | 1 | 4 | 3 | 2 | 7 | 9 | 8 | 5 | 6 | [ 33 ] [ 14 ] [ 16 ] [ 17 ] | |||||||
| رمادي فائض-3 | -3 | -2 | 0 | -1 | 4 | 3 | 1 | 2 | 12 | 11 | 9 | 10 | 5 | 6 | 8 | 7 | [ 16 ] [ 17 ] [ 20 ] [ nb 7 ] [ nb 2 ] | |
| 63-2-1 (I) | 3 | 2 | 1 | 0 | 5 | 4 | 8 | 9 | 7 | 6 | [ 29 ] [ 36 ] | |||||||
| 63-2-1 (II) | 0 | 3 | 2 | 1 | 6 | 5 | 4 | 9 | 8 | 7 | [ 29 ] [ 36 ] | |||||||
| 84-2-1 | 0 | 4 | 3 | 2 | 1 | 8 | 7 | 6 | 5 | 9 | [ 29 ] | |||||||
| محلي | 0 | 15 | 14 | 1 | 12 | 3 | 2 | 13 | 8 | 7 | 6 | 9 | 4 | 11 | 10 | 5 | [ 37 ] | |
| كاوتز الأول | 0 | 2 | 5 | 1 | 3 | 7 | 9 | 8 | 6 | 4 | [ 18 ] | |||||||
| كاوتز 2 | 9 | 4 | 1 | 3 | 2 | 8 | 6 | 7 | 0 | 5 | [ 18 ] [ 14 ] | |||||||
| سوسكيند الأول | 0 | 1 | 4 | 3 | 2 | 9 | 8 | 5 | 6 | 7 | [ 35 ] | |||||||
| سوسكيند الثاني | 0 | 1 | 9 | 8 | 4 | 3 | 2 | 5 | 6 | 7 | [ 35 ] | |||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
يُمثل الجدول التالي الأرقام العشرية من 0 إلى 9 في أنظمة ترميز BCD المختلفة. في رؤوس الأعمدة، تشير علامة " " إلى وزن كل بت. في العمود الخامس ("BCD 8 4 −2 −1")، اثنان من الأوزان سالبان. كما يُعرض أيضًا كل من رموز ASCII وEBCDIC للأحرف الخاصة بالأرقام، وهي أمثلة على BCD المُجزأ.8421
| رقم | BCD 8 4 2 1 | رمز ستيبتز أو فائض-3 | رمز أيكن أو BCD 2 4 2 1 | BCD 8 4 −2 −1 | IBM 702 ، IBM 705 ، IBM 7080 ، IBM 1401 8421 | ASCII 0000 8421 | EBCDIC 0000 8421 |
|---|---|---|---|---|---|---|---|
| 0 | 0000 | 0011 | 0000 | 0000 | 1010 | ٠٠١١ ٠٠٠٠ | 1111 0000 |
| 1 | ٠٠٠١ | 0100 | ٠٠٠١ | 0111 | ٠٠٠١ | 0011 0001 | 1111 0001 |
| 2 | 0010 | 0101 | 0010 | 0110 | 0010 | 0011 0010 | 1111 0010 |
| 3 | 0011 | 0110 | 0011 | 0101 | 0011 | 0011 0011 | 1111 0011 |
| 4 | 0100 | 0111 | 0100 | 0100 | 0100 | ٠٠١١ ٠١٠٠ | 1111 0100 |
| 5 | 0101 | 1000 | 1011 | 1011 | 0101 | ٠٠١١ ٠١٠١ | 1111 0101 |
| 6 | 0110 | 1001 | 1100 | 1010 | 0110 | 0011 0110 | 1111 0110 |
| 7 | 0111 | 1010 | 1101 | 1001 | 0111 | ٠٠١١ ٠١١١ | 1111 0111 |
| 8 | 1000 | 1011 | 1110 | 1000 | 1000 | 0011 1000 | 1111 1000 |
| 9 | 1001 | 1100 | 1111 | 1111 | 1001 | ٠٠١١ ١٠٠١ | 1111 1001 |
بما أن معظم أجهزة الكمبيوتر تتعامل مع البيانات في بايتات 8 بت ، فمن الممكن استخدام إحدى الطرق التالية لترميز رقم BCD:
- فك التشفير : يتم ترميز كل رقم عشري في بايت واحد، حيث تمثل أربعة بتات الرقم بينما لا يكون للبتات المتبقية أي أهمية.
- مُعَبَّأ : يتم ترميز رقمين عشريين في بايت واحد، حيث يكون أحد الرقمين في النصف الأقل أهمية ( البتات من 0 إلى 3 ) والآخر في النصف الأكثر أهمية (البتات من 4 إلى 7). [ nb 8 ]
على سبيل المثال، ينتج عن ترميز العدد العشري 91باستخدام BCD غير المضغوط النمط الثنائي التالي المكون من بايتين:
عشري: 9 1 ثنائي: 0000 1001 0000 0001
في نظام BCD المضغوط، يمكن وضع نفس الرقم في بايت واحد:
عشري: 9 1 ثنائي: 1001 0001
وبالتالي فإن النطاق العددي لبايت BCD غير مضغوط واحد هو من الصفر إلى تسعة شاملة، في حين أن النطاق لبايت BCD مضغوط واحد هو من الصفر إلى تسعة وتسعين شاملة.
لتمثيل أعداد أكبر من نطاق بايت واحد، يمكن استخدام أي عدد من البايتات المتجاورة. على سبيل المثال، لتمثيل العدد العشري 12345بنظام BCD المضغوط، باستخدام تنسيق big-endian ، يقوم البرنامج بالترميز كما يلي:
العشري: 0 1 2 3 4 5 ثنائي: 0000 0001 0010 0011 0100 0101
هنا، تم ترميز النصف الأكثر أهمية من البايت الأكثر أهمية كصفر، لذا يتم تخزين الرقم على هذا النحو 012345(لكن إجراءات التنسيق قد تستبدل أو تحذف الأصفار البادئة). يُعدّ ترميز BCD المضغوط أكثر كفاءة في استخدام مساحة التخزين من ترميز BCD غير المضغوط؛ إذ أن ترميز الرقم نفسه (مع الصفر البادئ) بتنسيق غير مضغوط سيستهلك ضعف مساحة التخزين.
تُستخدم عمليات الإزاحة والإخفاء لتعبئة أو فك تعبئة رقم BCD. وتُستخدم عمليات أخرى على مستوى البت لتحويل الرقم إلى نمط البت المكافئ له أو عكس العملية.
BCD المعبأ
تدعم بعض الحواسيب التي تتكون كلماتها من مضاعفات الثمانيات (بايت 8 بت)، مثل أنظمة الحواسيب المركزية الحديثة من IBM، تمثيلات BCD المعبأة (أو العشرية المعبأة [ 38 ] )، حيث يمثل كل نصف بايت إما رقمًا عشريًا أو إشارة. [ ملاحظة 8 ] يُستخدم نظام BCD المعبأ منذ ستينيات القرن الماضي على الأقل، وهو مُطبق في جميع أجهزة الحواسيب المركزية من IBM منذ ذلك الحين. معظم التطبيقات تعتمد على نظام Big Endian ، أي أن الرقم الأكثر أهمية يقع في النصف العلوي من كل بايت، ويحتوي البايت الأيسر (الموجود في أدنى عنوان ذاكرة) على الأرقام الأكثر أهمية من القيمة العشرية المعبأة. يُستخدم النصف السفلي من البايت الأيمن عادةً كعلامة إشارة، على الرغم من أن بعض التمثيلات غير الموقعة تفتقر إلى علامة إشارة.
على سبيل المثال، تتكون قيمة من 4 بايتات من 8 أنيبلات، حيث تخزن الأنيبلات السبعة العلوية أرقام قيمة عشرية مكونة من 7 أرقام، بينما يشير النصف السفلي إلى إشارة القيمة العشرية. القيم القياسية للإشارة هي 1100 ( الرمز الست عشري C) للإشارات الموجبة (+) و1101 (الرمز الست عشري D) للإشارات السالبة (−). هذا الاصطلاح مستمد من حقل المنطقة لأحرف EBCDIC وتمثيل الإشارة المتراكبة .
من بين الإشارات المسموح بها الأخرى 1010 (A) و1110 (E) للإشارات الموجبة، و1011 (B) للإشارات السالبة. تستخدم معالجات IBM System/360 الإشارتين 1010 (A) و1011 (B) إذا كانت بتة A مُفعّلة في PSW، وذلك لمعيار ASCII-8 الذي لم يُعتمد. كما توفر معظم التطبيقات قيم BCD غير مُوقّعة مع بتة إشارة 1111 (F). [ 39 ] [ 40 ] [ 41 ] يستخدم ILE RPG الإشارتين 1111 (F) للإشارات الموجبة و1101 (D) للإشارات السالبة. [ 42 ] تتوافق هذه القيم مع نطاق EBCDIC للأرقام بدون بتة إشارة إضافية. في نظام BCD المضغوط، يُرمز للعدد 127 بالرمز 0001 0010 0111 1100 (127C)، بينما يُرمز للعدد -127 بالرمز 0001 0010 0111 1101 (127D). استخدمت أنظمة بوروز الرمز 1101 (D) للإشارة إلى القيم السالبة، وتُعتبر أي قيمة أخرى موجبة (حيث تقوم المعالجات بتحويل الإشارة الموجبة إلى 1100 (C)).
| رقم الإشارة | BCD 8 4 2 1 | لافتة | ملحوظات |
|---|---|---|---|
| أ | 1 0 1 0 | + | |
| ب | 1 0 1 1 | - | |
| ج | 1 1 0 0 | + | مفضل |
| د | 1 1 0 1 | - | مفضل |
| هـ | 1 1 1 0 | + | |
| F | 1 1 1 1 | + | غير موقع |
بغض النظر عن عدد البايتات التي يبلغ عرض الكلمة ، يوجد دائمًا عدد زوجي من النيبلات لأن كل بايت يحتوي على اثنين منها. لذلك، يمكن لكلمة مكونة من n بايت أن تحتوي على ما يصل إلى 2n - 1 رقمًا عشريًا، وهو دائمًا عدد فردي من الأرقام. يتطلب العدد العشري المكون من d رقمًا مساحة تخزين مقدارها 1/2 ( d + 1) بايت.
على سبيل المثال، يمكن لكلمة مكونة من 4 بايت (32 بت) أن تحتوي على سبعة أرقام عشرية بالإضافة إلى الإشارة، ويمكنها تمثيل قيم تتراوح من ±9,999,999. وبالتالي، فإن العدد -1,234,567 يتكون من 7 أرقام ويتم ترميزه على النحو التالي:
٠٠٠١ ٠٠١٠ ٠٠١١ ٠١٠٠ ٠١٠١ ٠١١٠ ٠١١١ ١١٠١ 1 2 3 4 5 6 7 −
مثل سلاسل الأحرف، يتم تخزين البايت الأول من العدد العشري المضغوط - الذي يحتوي على الرقمين الأكثر أهمية - عادةً في أدنى عنوان في الذاكرة، بغض النظر عن ترتيب البايتات في الجهاز.
في المقابل، يمكن لعدد صحيح ثنائي مكون من 4 بايتات أن يمثل قيمًا من −2,147,483,648 إلى +2,147,483,647.
على الرغم من أن نظام BCD المضغوط لا يستغل مساحة التخزين على النحو الأمثل (إذ يستهلك ذاكرة أكبر بنسبة 20% تقريبًا من النظام الثنائي لتخزين الأرقام نفسها)، إلا أن التحويل إلى ASCII أو EBCDIC أو مختلف ترميزات Unicode يصبح في غاية السهولة، لعدم الحاجة إلى أي عمليات حسابية. وعادةً ما يتم تعويض متطلبات التخزين الإضافية بالحاجة إلى الدقة والتوافق مع الآلة الحاسبة أو الحساب اليدوي التي يوفرها الحساب العشري ذو النقطة الثابتة. توجد أنظمة ضغط BCD أكثر كثافة تتجنب عبء التخزين الزائد، كما أنها لا تتطلب عمليات حسابية للتحويلات الشائعة.
يدعم لغة البرمجة كوبول تنسيق BCD المعبأ كنوع بيانات "COMPUTATIONAL-3" (امتداد من IBM اعتمدته العديد من شركات تصنيع المترجمات الأخرى) أو "PACKED-DECIMAL" (جزء من معيار كوبول لعام 1985). كما يدعمه PL/I كنوع بيانات "FIXED DECIMAL". بالإضافة إلى أجهزة IBM System/360 والحواسيب المركزية المتوافقة معها، يُطبَّق تنسيق BCD المعبأ في مجموعة التعليمات الأصلية لمعالجات VAX الأصلية من شركة Digital Equipment Corporation وبعض طرازات سلسلة SDS Sigma من الحواسيب المركزية، وهو التنسيق الأصلي لسلسلة Burroughs Medium Systems من الحواسيب المركزية (المنحدرة من سلسلة Electrodata 200 التي ظهرت في خمسينيات القرن الماضي ).
يُقدّم تمثيل المتمم العشري للأعداد السالبة طريقةً بديلةً لترميز إشارة الأعداد المضغوطة (وغيرها) من أعداد BCD. في هذه الحالة، يكون الرقم الأكثر أهمية للأعداد الموجبة دائمًا بين 0 و4 (شاملًا)، بينما تُمثَّل الأعداد السالبة بالمتمم العشري للعدد الموجب المقابل.
ونتيجة لذلك، يسمح هذا النظام بنطاق أرقام BCD المعبأة ذات 32 بت منمن -50,000,000 إلى+49 999 999 ، و −1 يتم تمثيله على أنه 99999999. (كما هو الحال مع الأعداد الثنائية المتممة، فإن النطاق ليس متناظرًا حول الصفر.)
نظام عشري معبأ ذو نقطة ثابتة
تدعم بعض لغات البرمجة (مثل COBOL وPL/I) الأعداد العشرية ذات الفاصلة الثابتة . وتتيح هذه اللغات للمبرمج تحديد فاصلة عشرية ضمنية أمام أحد الأرقام.
على سبيل المثال، تمثل القيمة العشرية المضغوطة المشفرة بالبايتات 12 34 56 7C قيمة النقطة الثابتة+1 234 .567 عندما تقع الفاصلة العشرية الضمنية بين الرقمين الرابع والخامس:
12 34 56 7C 12 34.56 7+
لا يتم تخزين الفاصلة العشرية فعلياً في الذاكرة، لأن تنسيق تخزين BCD المضغوط لا يدعم ذلك. موقعها معروف للمترجم فقط، ويتصرف الكود المُولّد وفقاً لذلك في العمليات الحسابية المختلفة.
ترميزات ذات كثافة أعلى
إذا كان الرقم العشري الواحد يتطلب أربعة بتات، فإن ثلاثة أرقام عشرية تتطلب 12 بتًا. مع ذلك، بما أن 2^ 10 (1024) أكبر من 10 ^3 (1000)، فإنه عند ترميز ثلاثة أرقام عشرية معًا، لا يلزم سوى 10 بتات. من بين هذه الترميزات، ترميز تشين-هو والترميز العشري المضغوط بكثافة (DPD). يتميز الأخير بميزة أن مجموعات فرعية منه تُرمّز رقمين في سبعة بتات مثالية، ورقمًا واحدًا في أربعة بتات، كما هو الحال في ترميز BCD العادي.
نظام عشري مُقسّم إلى مناطق
تدعم بعض التطبيقات، مثل أنظمة الحواسيب المركزية من IBM ، تمثيلات الأرقام العشرية المُجزأة . يُخزَّن كل رقم عشري في بايت واحد مكون من 8 بتات [ nb 9 ] ، حيث تُشفِّر البتات الأربعة السفلى الرقم بصيغة BCD. أما البتات الأربعة العليا [ nb 10 ] ، والتي تُسمى بتات "المنطقة"، فتُضبط عادةً على قيمة ثابتة بحيث يحتوي البايت على قيمة حرفية تُطابق الرقم، أو على قيم تُمثل علامتي الجمع أو الطرح. تستخدم أنظمة EBCDIC [ nb 11 ] قيمة منطقة 1111 2 ( F 16 )، مما ينتج عنه F0 16 – F9 16 ، وهي رموز الأحرف من "0" إلى "9"، وقيمة منطقة 1100 2 ( C 16 ) للأحرف الموجبة، مما ينتج عنه C0 16 – C9 16 ، وهي رموز الأحرف من "{" إلى "I"، وقيمة منطقة 1110 2 ( D 16 ) للأحرف السالبة، مما ينتج عنه D0 16 – D9 16 ، وهي رموز الأحرف من "}" إلى "R". وبالمثل، تستخدم أنظمة ASCII قيمة منطقة 0011 (سداسي عشري 3)، مما ينتج عنه رموز الأحرف من 30 إلى 39 (سداسي عشري).
بالنسبة للقيم العشرية المُقسّمة إلى مناطق، يحتوي النصف بايت الأيمن (الأقل أهمية) على رقم الإشارة، وهو نفس مجموعة القيم المستخدمة للأعداد العشرية المُعبأة والمُوقّعة (انظر أعلاه). وبالتالي، فإن القيمة العشرية المُقسّمة إلى مناطق والمُشفّرة بالبايتات السداسية F1 F2 D3 تُمثّل القيمة العشرية المُوقّعة -123.
F1 F2 D3 1 2 −3
جدول تحويل الأعداد العشرية المصنفة حسب المناطق EBCDIC
| رقم BCD | النظام الست عشري | رمز EBCDIC | ||||||
|---|---|---|---|---|---|---|---|---|
| 0+ | C0 | A0 | E0 | F0 | { (*) | (*) | 0 | |
| 1+ | ج1 | A1 | E1 | F1 | أ | ~ (*) | 1 | |
| 2+ | C2 | A2 | E2 | F2 | ب | s | S | 2 |
| 3+ | ج3 | A3 | E3 | F3 | ج | ت | تي | 3 |
| 4+ | C4 | A4 | E4 | F4 | د | u | يو | 4 |
| 5+ | C5 | A5 | E5 | F5 | هـ | v | V | 5 |
| 6+ | C6 | A6 | E6 | F6 | F | w | دبليو | 6 |
| 7+ | C7 | A7 | E7 | F7 | جي | x | X | 7 |
| 8+ | C8 | A8 | E8 | F8 | ح | y | Y | 8 |
| 9+ | C9 | A9 | E9 | F9 | أنا | z | Z | 9 |
| 0- | D0 | B0 | } (*) | ^ (*) | ||||
| 1- | D1 | ب1 | ج | |||||
| 2- | D2 | B2 | ك | |||||
| 3- | D3 | ب3 | ل | |||||
| 4- | D4 | ب٤ | م | |||||
| 5- | D5 | ب5 | شمال | |||||
| 6- | D6 | ب6 | يا | |||||
| 7- | D7 | B7 | P | |||||
| 8- | D8 | B8 | سؤال | |||||
| 9- | D9 | B9 | R | |||||
(*) ملاحظة: تختلف هذه الأحرف حسب إعدادات صفحة ترميز الأحرف المحلية .
نظام عشري ذو نقطة ثابتة
تدعم بعض اللغات (مثل COBOL و PL/I) بشكل مباشر القيم العشرية ذات النقطة الثابتة، حيث يتم تعيين نقطة عشرية ضمنية في مكان ما بين الأرقام العشرية للرقم.
على سبيل المثال، إذا افترضنا قيمة عشرية موقعة مكونة من ستة بايتات مع وجود فاصلة عشرية ضمنية على يمين الرقم الرابع، فإن البايتات السداسية F1 F2 F7 F9 F5 C0 تمثل القيمة +1,279.50:
F1 F2 F7 F9 F5 C0 1 2 7 9. 5 +0
العمليات مع BCD
إضافة
يمكن إجراء عملية الجمع عن طريق الجمع أولاً بالنظام الثنائي، ثم التحويل إلى نظام BCD لاحقاً. ويمكن تحويل مجموع رقمين بسيطين بإضافة 6 (أي 16 - 10) عندما تكون نتيجة جمع الرقمين (المكونة من خمسة بتات) أكبر من 9. والسبب في إضافة 6 هو وجود 16 قيمة ممكنة لنظام BCD (المكونة من 4 بتات) (لأن 2⁴ = 16)، ولكن 10 قيم فقط صالحة (من 0000 إلى 1001). على سبيل المثال:
1001 + 1000 = 10001 9 + 8 = 17
العدد 10001 هو التمثيل الثنائي، وليس العشري، للنتيجة المطلوبة، ولكن الرقم 1 الأكثر أهمية (الرقم "الحمل") لا يمكن أن يتسع في عدد ثنائي مكون من 4 بتات. في نظام BCD كما في النظام العشري، لا يمكن أن توجد قيمة أكبر من 9 (1001) لكل رقم. ولتصحيح ذلك، يُضاف 6 (0110) إلى المجموع، ثم تُعامل النتيجة على أنها نصف بايتين.
10001 + 0110 = 00010111 => 0001 0111 17 + 6 = 23 1 7
يمثل النصفان من النتيجة، 0001 و0111، الرقمين "1" و"7". وهذا يعطينا "17" في نظام BCD، وهي النتيجة الصحيحة.
يمكن توسيع هذه التقنية لتشمل جمع أرقام متعددة عن طريق الجمع في مجموعات من اليمين إلى اليسار، مع تمرير الرقم الثاني كرقم محمول، ومقارنة نتيجة كل زوج من الأرقام (5 بتات) دائمًا بالرقم 9. توفر بعض وحدات المعالجة المركزية علامة نصف حمل لتسهيل عمليات التعديل الحسابي BCD بعد عمليات الجمع والطرح الثنائية. يوفر كل من Intel 8080 و Zilog Z80 ووحدات المعالجة المركزية من عائلة x86 رمز العملية DAA (مُجمِّع التعديل العشري على 8080 وZ80 / التعديل العشري للجمع على x86).
الطرح
تُجرى عملية الطرح بإضافة المتمم العشري للمطروح إلى المطروح منه . لتمثيل إشارة عدد في نظام BCD، يُستخدم العدد 0000 لتمثيل عدد موجب ، والعدد 1001 لتمثيل عدد سالب . أما التوليفات الـ 14 المتبقية فهي إشارات غير صالحة. لتوضيح عملية الطرح في نظام BCD مع الإشارة، انظر إلى المسألة التالية: 357 - 432.
في نظام BCD المُوَقَّع، يُكتب العدد 357 على الصورة 0000 0011 0101 0111. يُمكن الحصول على المُتمِّم العشري للعدد 432 بأخذ المُتمِّم التساعي له، ثم إضافة واحد. لذا، 999 - 432 = 567، و 567 + 1 = 568. بإضافة رمز السالب قبل العدد 568 في نظام BCD، يُمكن تمثيل العدد -432. لذا، يُكتب -432 في نظام BCD المُوَقَّع على الصورة 1001 0101 0110 1000.
الآن وقد تم تمثيل كلا الرقمين بنظام BCD الموقّع، يمكن جمعهما معًا:
0000 0011 0101 0111 0 3 5 7 + 1001 0101 0110 1000 9 5 6 8 = 1001 1000 1011 1111 9 8 11 15
بما أن نظام BCD هو شكل من أشكال التمثيل العشري، فإن العديد من مجاميع الأرقام المذكورة أعلاه غير صالحة. في حال وجود رقم غير صالح (أي رقم BCD أكبر من 1001)، يُضاف الرقم 6 لإنشاء بتة حمل، مما يجعل المجموع رقمًا صالحًا. لذا، فإن إضافة 6 إلى الأرقام غير الصالحة ينتج عنه ما يلي:
1001 1000 1011 1111 9 8 11 15 + 0000 0000 0110 0110 0 0 6 6 = 1001 1001 0001 0101 9 9 1 5
وبالتالي، فإن نتيجة الطرح هي 1001 1001 0010 0101 (-925). وللتأكد من صحة النتيجة، لاحظ أن الرقم الأول هو 9، مما يعني أنه سالب. ويبدو هذا صحيحًا لأن 357 - 432 يجب أن ينتج عنه عدد سالب. أما الأرقام المتبقية فهي بنظام BCD، لذا فإن 1001 0010 0101 يساوي 925. والمتمم العشري للعدد 925 هو 1000 - 925 = 75، لذا فإن الإجابة المحسوبة هي -75.
إذا كان عدد الأنبلات المُضافة مختلفًا (مثل 1053 - 2)، فيجب أولًا إضافة أصفار قبل العدد ذي الأرقام الأقل قبل حساب المتمم العشري أو الطرح. لذا، في حالة 1053 - 2، يجب أولًا تمثيل 2 بالصيغة 0002 في نظام BCD، ثم حساب المتمم العشري للعدد 0002.
BCD في أجهزة الكمبيوتر
شركة آي بي إم
استخدمت شركة IBM مصطلح "رمز التبادل العشري المشفر ثنائيًا" (BCDIC، ويُشار إليه أحيانًا اختصارًا بـ BCD)، للإشارة إلى رموز أبجدية رقمية مكونة من 6 بتات تمثل الأرقام والحروف الكبيرة والرموز الخاصة. ويُستخدم نوعٌ ما من رموز BCDIC الأبجدية الرقمية في معظم أجهزة الكمبيوتر القديمة من IBM، بما في ذلك IBM 1620 (الذي طُرح عام 1959)، وسلسلة IBM 1400 ، وأجهزة IBM 700/7000 ذات البنية غير العشرية .
تُعدّ سلسلة IBM 1400 آلات قابلة للعنونة الحرفية، حيث يتكون كل موقع من ستة بتات مُرقّمة B وA و8 و4 و2 و 1، بالإضافة إلى بت التحقق من التكافؤ الفردي ( C ) وبت علامة الكلمة ( M ). لترميز الأرقام من 1 إلى 9 ، تكون قيمتا B و A صفرًا، بينما تكون قيمة الرقم المُمثلة بنظام BCD القياسي ذي 4 بتات في البتات من 8 إلى 1. بالنسبة لمعظم الأحرف الأخرى، تُشتق قيمتا B و A ببساطة من "ثقوب المنطقة" 12 و11 و0 في رمز الأحرف على البطاقة المثقبة ، بينما تُشتق قيم البتات من 8 إلى 1 من ثقوب الأرقام من 1 إلى 9. يُعيّن ثقب "المنطقة 12" كلاً من B و A ، ويُعيّن ثقب "المنطقة 11" قيمة B ، ويُعيّن ثقب "المنطقة 0" (ثقب 0 مُدمج مع أي ثقب آخر) قيمة A. وبالتالي، يُرمز للحرف A ، الذي يُمثله (12، 1) في تنسيق البطاقة المثقبة، بالرمز (B، A، 1) . تم ترميز رمز العملة $ ، (11,8,3) الموجود على البطاقة المثقبة، في الذاكرة على شكل (B,8,2,1) . يسمح هذا للدوائر بتحويل البيانات بين تنسيق البطاقة المثقبة وتنسيق التخزين الداخلي بسهولة بالغة، مع وجود حالات خاصة قليلة فقط. إحدى هذه الحالات الخاصة المهمة هي الرقم 0 ، الذي يُمثَّل بثقب 0 منفرد على البطاقة، و (8,2) في الذاكرة الرئيسية. [ 43 ]
تُنظَّم ذاكرة جهاز IBM 1620 في وحدات رقمية قابلة للعنونة بستة بتات، وهي الأرقام المعتادة 8 و 4 و 2 و 1 بالإضافة إلى F ، المستخدمة كبتة علامة، و C ، وهي بتة التحقق من التكافؤ الفردي. تُشفَّر الأحرف الأبجدية الرقمية (BCD ) باستخدام أزواج من الأرقام، حيث يُمثِّل الرقم ذو العنوان الزوجي "المنطقة"، بينما يُمثِّل الرقم ذو العنوان الفردي "الرقم". ترتبط "المنطقة" بـ "مفاتيح المنطقة" 12 و 11 و 0 كما في سلسلة 1400. يقوم جهاز ترجمة الإدخال/الإخراج بالتحويل بين أزواج الأرقام الداخلية ورموز BCD القياسية الخارجية ذات الستة بتات.
في بنية النظام العشري لأجهزة IBM 7070 و IBM 7072 و IBM 7074 ، تُشفّر الأحرف والأرقام باستخدام أزواج من الأرقام (باستخدام ترميز اثنين من خمسة في الأرقام، وليس BCD) للكلمة المكونة من 10 أرقام، حيث يُمثّل الرقم الأيسر "المنطقة" والرقم "الرقم" يُمثّل الرقم الأيمن. وتقوم وحدة معالجة الإدخال/الإخراج بتحويل البيانات بين أزواج الأرقام الداخلية ورموز BCD الخارجية القياسية ذات 6 بت.
مع إطلاق نظام System/360 ، وسّعت شركة IBM نطاق استخدام الأحرف الأبجدية الرقمية ذات 6 بتات (BCD) إلى 8 بتات (EBCDIC)، مما أتاح إضافة المزيد من الأحرف (مثل الأحرف الصغيرة). كما تم تطبيق نوع بيانات رقمي BCD مضغوط ذي طول متغير ، مما يوفر تعليمات آلية تُجري العمليات الحسابية مباشرةً على البيانات العشرية المضغوطة.
في أجهزة IBM 1130 و 1800 ، يتم دعم BCD المعبأ في البرامج بواسطة حزمة البرامج الفرعية التجارية من IBM.
لا تزال بيانات BCD تُستخدم بكثافة في قواعد بيانات IBM مثل IBM Db2 ، وفي معالجات مثل z/Architecture و POWER6 ، بالإضافة إلى معالجات Power ISA اللاحقة . في هذه المنتجات، تُستخدم عادةً إما BCD مُجزأ (كما في EBCDIC أو ASCII)، أو BCD مُعبأ (رقمان عشريان لكل بايت)، أو ترميز BCD "نقي" (رقم عشري واحد مُخزن كـ BCD في البتات الأربعة الأدنى من كل بايت). تُستخدم جميع هذه الطرق في سجلات الأجهزة ووحدات المعالجة، وفي البرامج.
أجهزة كمبيوتر أخرى
تتضمن سلسلة VAX من شركة Digital Equipment Corporation تعليماتٍ تُتيح إجراء العمليات الحسابية مباشرةً على بيانات BCD المضغوطة، والتحويل بين بيانات BCD المضغوطة وتمثيلات الأعداد الصحيحة الأخرى. [ 41 ] يتوافق تنسيق BCD المضغوط في VAX مع تنسيق IBM System/360 والمعالجات المتوافقة الأحدث من IBM. وقد تخلت معالجات MicroVAX والإصدارات اللاحقة من VAX عن هذه الإمكانية، لكنها حافظت على توافق التعليمات البرمجية مع الأجهزة السابقة من خلال تضمين التعليمات المفقودة في مكتبة برمجية يوفرها نظام التشغيل. ويتم استدعاء هذه المكتبة تلقائيًا عبر معالجة الاستثناءات عند مصادفة التعليمات المعطلة، ما يسمح بتشغيل البرامج التي تستخدمها دون تعديل على الأجهزة الأحدث.
تدعم العديد من المعالجات العمليات الحسابية للأعداد الصحيحة المشفرة بنظام BCD. على سبيل المثال، معالج 6502 ، [ 44 ] [ 45 ] وسلسلة معالجات موتورولا 68000 ، [ 46 ] وسلسلة x86 . [ 47 ] يدعم معمارية Intel x86 تنسيق BCD فريدًا مكونًا من 18 رقمًا (عشرة بايتات) يمكن تحميله وتخزينه في سجلات الفاصلة العائمة، ومنها يمكن إجراء العمليات الحسابية. [ 48 ]
في أجهزة الكمبيوتر الحديثة، يتم تنفيذ هذه الإمكانيات دائمًا تقريبًا في البرامج بدلاً من مجموعة تعليمات وحدة المعالجة المركزية، ولكن البيانات الرقمية BCD لا تزال شائعة للغاية في التطبيقات التجارية والمالية.
توجد حيل لتنفيذ عمليات الجمع والطرح باستخدام نظام BCD المضغوط ونظام الأعداد العشرية المُجزأة، وذلك باستخدام تسلسلات قصيرة ولكن يصعب فهمها من منطق التوازي اللفظي وعمليات الحساب الثنائي. [ 49 ] على سبيل المثال، يحسب الكود التالي (المكتوب بلغة C ) عملية جمع عدد غير مُوقّع مكون من 8 أرقام باستخدام نظام BCD المضغوط، وذلك باستخدام عمليات ثنائية 32 بت:
uint32_t BCDadd ( uint32_t a , uint32_t b ) { uint32_t t1 , t2 ; // قيم وسيطة غير موقعة 32 بتt1 = a + 0x06666666 ; t2 = t1 ^ b ; // المجموع بدون نقل الحمل t1 = t1 + b ; // المجموع المؤقت t2 = t1 ^ t2 ; // جميع بتات الحمل الثنائية t2 = ~ t2 & 0x11111110 ; // بتات الحمل BCD فقط t2 = ( t2 >> 2 ) | ( t2 >> 3 ); // تصحيح return t1 - t2 ; // مجموع BCD المصحح }BCD في الإلكترونيات
يُعدّ نظام BCD شائعًا في الأنظمة الإلكترونية التي تتطلب عرض قيمة عددية، لا سيما في الأنظمة التي تتكون حصريًا من منطق رقمي ولا تحتوي على معالج دقيق. وباستخدام نظام BCD، يُمكن تبسيط معالجة البيانات العددية للعرض بشكل كبير من خلال التعامل مع كل رقم كدائرة فرعية مستقلة.
يتوافق هذا بشكل أدق مع الواقع المادي لأجهزة العرض؛ فقد يختار المصمم، على سبيل المثال، استخدام سلسلة من شاشات العرض المتطابقة ذات السبعة أجزاء لبناء دائرة قياس. إذا تم تخزين الكمية الرقمية ومعالجتها كنظام ثنائي بحت، فإن التفاعل مع هذه الشاشة سيتطلب دوائر معقدة. لذلك، في الحالات التي تكون فيها العمليات الحسابية بسيطة نسبيًا، يمكن أن يؤدي العمل بنظام BCD إلى نظام أبسط بشكل عام من التحويل من وإلى النظام الثنائي. تُجري معظم الآلات الحاسبة الجيبية جميع عملياتها الحسابية بنظام BCD.
ينطبق الأمر نفسه عندما تستخدم الأجهزة من هذا النوع متحكمًا دقيقًا مدمجًا أو معالجًا صغيرًا آخر. غالبًا ما يؤدي تمثيل الأرقام داخليًا بصيغة BCD إلى تقليل حجم الكود، نظرًا لأن التحويل من أو إلى التمثيل الثنائي قد يكون مكلفًا على هذه المعالجات المحدودة. في هذه التطبيقات، تتميز بعض المعالجات الصغيرة بأوضاع حسابية مخصصة، مما يُسهّل كتابة الإجراءات التي تتعامل مع كميات BCD. [ 50 ] [ 51 ]
مقارنة مع النظام الثنائي النقي
المزايا
- التوسيع بمقدار قوة 10 أمر بسيط.
- التقريب عند حدود الأرقام العشرية أسهل. لا تتطلب عمليتا الجمع والطرح في النظام العشري التقريب.
- إن محاذاة رقمين عشريين (على سبيل المثال 1.3 + 27.08) هي عملية إزاحة بسيطة ودقيقة.
- يُعدّ التحويل إلى شكل حرفي أو للعرض (مثلًا، إلى تنسيق نصي مثل XML ، أو لتشغيل إشارات شاشة عرض سباعية الأجزاء ) عملية ربط بسيطة لكل رقم، ويمكن إجراؤها في زمن خطي ( O ( n )). أما التحويل من النظام الثنائي البحت فيتضمن منطقًا معقدًا نسبيًا يمتد عبر الأرقام، وبالنسبة للأعداد الكبيرة، لا توجد خوارزمية تحويل معروفة بزمن خطي (انظر العدد الثنائي § التحويل من وإلى أنظمة عددية أخرى ).
- تتمتع العديد من القيم غير الصحيحة، مثل العدد العشري 0.2، بتمثيل ذي عدد لا نهائي من المنازل في النظام الثنائي (0.001100110011...)، بينما يكون لها عدد محدود من المنازل في النظام العشري المشفر ثنائيًا (0.0010). ونتيجةً لذلك، يتجنب النظام القائم على التمثيل العشري المشفر ثنائيًا للكسور العشرية أخطاء تمثيل هذه القيم وحسابها. وهذا مفيد في الحسابات المالية.
العيوب
- عادةً ما تكون التطبيقات العملية الحالية لـ BCD أبطأ من العمليات على التمثيلات الثنائية، وخاصة على الأنظمة المدمجة، وذلك بسبب محدودية دعم المعالج لعمليات BCD الأصلية. [ 52 ]
- بعض العمليات أكثر تعقيدًا في التنفيذ. تتطلب دوائر الجمع منطقًا إضافيًا لتجاوز الحدود وتوليد عملية الحمل مبكرًا. كما يتطلب الجمع باستخدام نظام BCD دوائر إلكترونية أكثر بنسبة 15 إلى 20% مقارنةً بالجمع باستخدام النظام الثنائي البحت. أما الضرب، فيتطلب استخدام خوارزميات أكثر تعقيدًا من عملية الجمع باستخدام قناع الإزاحة (وهي عملية ضرب ثنائية تتطلب عمليات إزاحة وجمع ثنائية أو ما يعادلها، على مستوى كل رقم أو مجموعة أرقام).
- يتطلب نظام BCD القياسي أربعة بتات لكل رقم، أي ما يقارب 20% مساحة تخزين أكبر من الترميز الثنائي (نسبة 4 بتات إلى لوغاريتم 2^ 10 بتات هي 1.204). عند ضغط الأرقام بحيث يتم ترميز ثلاثة أرقام في عشرة بتات، ينخفض حجم التخزين المطلوب بشكل كبير، ولكن على حساب عدم توافق الترميز مع حدود البايتات الثمانية الشائعة في الأجهزة الحالية، مما يؤدي إلى بطء التنفيذ على هذه الأنظمة.
الاختلافات التمثيلية
توجد تطبيقات متنوعة لنظام BCD تستخدم تمثيلات أخرى للأرقام. تستخدم الآلات الحاسبة القابلة للبرمجة، المصنعة من قبل شركات مثل تكساس إنسترومنتس وهيوليت -باكارد وغيرها، عادةً تنسيق BCD للفاصلة العائمة ، مع رقمين أو ثلاثة أرقام للأس (العشري). يمكن استخدام البتات الإضافية لرقم الإشارة للدلالة على قيم عددية خاصة، مثل اللانهاية ، أو تجاوز الحد الأدنى / الأقصى ، أو الخطأ (شاشة وامضة).
اختلافات موقعة
يمكن تمثيل القيم العشرية الموقعة بعدة طرق. على سبيل المثال، تدعم لغة البرمجة COBOL خمسة تنسيقات عشرية مقسمة إلى مناطق، حيث يقوم كل منها بترميز الإشارة العددية بطريقة مختلفة:
| يكتب | وصف | مثال |
|---|---|---|
| غير موقع | لا يوجد علامة على النكز | F1 F2 F3 |
| التوقيع في النهاية (التنسيق المتعارف عليه) | جزء الإشارة في البايت الأخير (الأقل أهمية) | F1 F2 C3 |
| التوقيع الرئيسي (الضربة القاضية) | جزء الإشارة في البايت الأول (الأكثر أهمية) | C1 F2 F3 |
| التوقيع منفصل | افصل بايت رمز الإشارة ( '+'أو '−') بعد بايتات الأرقام | F1 F2 F3 2B |
| تم التوقيع بشكل منفصل | بايت رمز الإشارة المنفصل ( '+'أو '−') الذي يسبق بايتات الأرقام | 2B F1 F2 F3 |
نظام الهاتف العشري المشفر ثنائياً (TBCD)
قام 3GPP بتطوير TBCD ، [ 53 ] وهو امتداد لـ BCD حيث يتم استخدام مجموعات البتات المتبقية (غير المستخدمة) لإضافة رموز هاتفية محددة، [ 54 ] [ 55 ] على غرار تلك الموجودة في تصميم لوحة مفاتيح الهاتف .
| الرقم العشري | TBCD 8 4 2 1 |
|---|---|
| * | 1 0 1 0 |
| 8 | 1 0 1 1 |
| أ | 1 1 0 0 |
| ب | 1 1 0 1 |
| ج | 1 1 1 0 |
| يُستخدم كحشو عندما يكون عدد الأرقام فرديًا | 1 1 1 1 |
تحدد وثيقة 3GPP المذكورة TBCD-STRING مع تبديل النصف بايت في كل بايت. يتم ترقيم البتات والثمانيات والأرقام من 1، والبتات من اليمين، والأرقام والثمانيات من اليسار.
البتات 8765 من الرقم 2 في ترميز الثمانية n
البتات 4321 من الثمانية بتات n ترميز الرقم 2( n – 1) + 1
الرقم ذو المعنى 1234، سيصبح 21 43في TBCD.
يُستخدم هذا التنسيق في الاتصالات الهاتفية المحمولة الحديثة لإرسال الأرقام المطلوبة، بالإضافة إلى معرف المشغل (مجموعة MCC/MNC)، و IMEI ، و IMSI (SUPI)، وما إلى ذلك. [ 56 ] [ 57 ]
ترميزات بديلة
إذا كانت أخطاء التمثيل والحساب أكثر أهمية من سرعة التحويل من وإلى الشاشة، فيمكن استخدام تمثيل ثنائي مُقاس، حيث يُخزَّن العدد العشري كعدد صحيح مُشفَّر ثنائيًا وأسٍّ عشري مُوَقَّع مُشفَّر ثنائيًا. على سبيل المثال، يمكن تمثيل 0.2 على النحو التالي: 2 × 10-1 .
يُتيح هذا التمثيل إجراء عمليات الضرب والقسمة بسرعة، ولكنه قد يتطلب إزاحة بمقدار قوة من قوى العدد 10 أثناء الجمع والطرح لمحاذاة الفواصل العشرية. وهو مناسب للتطبيقات ذات عدد ثابت من المنازل العشرية التي لا تتطلب هذا التعديل، لا سيما التطبيقات المالية حيث يكفي عادةً رقمان أو أربعة أرقام بعد الفاصلة العشرية. في الواقع، يُعد هذا شكلاً من أشكال الحساب ذي الفاصلة الثابتة تقريبًا ، نظرًا لأن موضع الفاصلة العشرية مُضمّن.
توفر ترميزات هيرتز وتشين -هو تحويلات منطقية لتحويل مجموعات من ثلاثة أرقام مشفرة بنظام BCD من وإلى قيم 10 بت [ ملاحظة 1 ] ، والتي يمكن ترميزها بكفاءة في الأجهزة باستخدام تأخيرات بوابتين أو ثلاث فقط. يُعد نظام DPD ( العشري المضغوط بكثافة ) نظامًا مشابهًا [ ملاحظة 1 ] يُستخدم لمعظم الأجزاء المهمة ، باستثناء الرقم الأول، لأحد نظامي الترميز العشري البديلين المحددين في معيار IEEE 754-2008 للفاصلة العائمة.
طلب
يخزن نظام الإدخال والإخراج الأساسي (BIOS) في العديد من أجهزة الكمبيوتر الشخصية التاريخ والوقت بنظام BCD، وذلك لأن شريحة الساعة MC146818 المستخدمة في اللوحة الأم الأصلية لجهاز IBM PC AT كانت تحسب وتوفر الوقت والتاريخ بنظام BCD. ويمكن تحويل هذا النظام بسهولة إلى ASCII لعرضه. [ 58 ] [ 59 ]
تستخدم حواسيب أتاري ذات 8 بت نظام BCD للأعداد العشرية. يحتوي معالج MOS Technology 6502 على وضع BCD لتعليمات الجمع والطرح، بدلاً من تعليمات تعديل BCD كما هو الحال في العديد من وحدات المعالجة المركزية الأخرى، بما في ذلك عائلة 8080 وعائلة x86؛ وكان "الوضع العشري" هذا موضوع براءة الاختراع الوحيدة الخاصة بمعالج 6502. كما يستخدم برنامج حاسوب Psion Organiser 1 المحمول، المُقدم من الشركة المصنعة، نظام BCD لتنفيذ الأعداد العشرية؛ بينما تستخدم طرازات Psion اللاحقة النظام الثنائي حصريًا.
تقوم العديد من ألعاب الفيديو المبكرة، بما في ذلك لعبة Atari Pong الأصلية والعديد من الألعاب المقلدة لها، بتخزين وحساب النتيجة بنظام BCD لتسهيل عرضها باستخدام منطق رقمي منفصل دون معالج كمبيوتر قابل للبرمجة من أي نوع.
كانت الطرازات الأولى من جهاز بلاي ستيشن 3 تخزن التاريخ والوقت بنظام BCD. وقد أدى ذلك إلى انقطاع الخدمة عالميًا في 1 مارس 2010. إذ تم تفسير آخر رقمين من السنة المخزنة بنظام BCD بشكل خاطئ على أنهما 16، مما تسبب في خطأ في تاريخ الجهاز، وجعل معظم وظائفه غير قابلة للاستخدام. وقد عُرفت هذه المشكلة باسم " مشكلة عام 2010" .
التاريخ القانوني
في قضية جوتشالك ضد بينسون عام 1972 ، نقضت المحكمة العليا الأمريكية قرار محكمة أدنى سمحت ببراءة اختراع لتحويل الأرقام المشفرة بنظام BCD إلى نظام ثنائي على جهاز كمبيوتر.
أشار القرار إلى أن براءة الاختراع "ستستبق الصيغة الرياضية تمامًا، وستكون عمليًا بمثابة براءة اختراع للخوارزمية نفسها ". [ 60 ] كان هذا حكمًا تاريخيًا حدد إمكانية الحصول على براءة اختراع للبرمجيات والخوارزميات .
انظر أيضاً
- نظام عشري مشفر ثنائي خماسي
- الترميز الثنائي الثلاثي (BCT)
- نظام العد الثنائي الصحيح العشري (BID)
- قناع البت
- ترميز تشين-هو
- الحاسوب العشري
- نظام عشري مضغوط بكثافة (DPD)
- دابل دابل ، خوارزمية لتحويل الأرقام الثنائية إلى BCD
- مشكلة عام 2000
ملحوظات
- 1 2 3 في تمثيل قياسي مضغوط مكون من 4 بتات، هناك 16 حالة (أربعة بتات لكل رقم) مع 10 رباعيات و 6 رباعيات زائفة ، بينما في المخططات الأكثر كثافة مثل ترميز هيرتز أو تشين-هو أو DPD، هناك عدد أقل - على سبيل المثال، 24 حالة غير مستخدمة فقط في 1024 حالة (10 بتات لثلاثة أرقام).
- تشير الحالات المشفرة (الموضحة باللون الأسود ) خارج النطاق العشري من 0 إلى 9 إلى حالات إضافية من النسخة غير المشفرة بنظام BCD. أما في النسخة المشفرة بنظام BCD التي نناقشها هنا، فهي عبارة عن رباعيات زائفة .
- ↑ يُعدّ رمز آيكن أحد رموز 2421 العديدة. ويُعرف أيضاً باسم رمز 2*421.
- ↑ يُعرف رمز القفز عند 8 أيضًا باسم رمز 2421 غير المتماثل.
- ↑ يُعرف رمز بيثريك أيضًا باسمرمز المؤسسة الملكية للطائرات (RAE).
- ↑ يُعرف نوع رمز أوبراين الأول أيضًا باسم رمز واتس أو رمز واتس العشري المنعكس (WRD).
- ↑ يُعرف رمز غراي الزائد 3 أيضًاباسم رمز غراي - ستيبتز .
- 1 2 وبالمثل، غالبًا ما كانت الأحرف المتعددة تُجمع في كلمات الآلة على أجهزة الكمبيوتر الصغيرة ، انظر IBM SQUOZE و DEC RADIX 50 .
- ↑ 6 بت للأجهزة القديمة.
- ↑ اثنان للأجهزة القديمة.
- ↑ القيم المعروضة لـ C0 16 و D0 16 هي لصفحة الترميز 037.
مراجع
- ↑ إنتل. "دليل بنية ia32" (ملف PDF) . إنتل . مؤرشف (ملف PDF) من الأصل بتاريخ 9 أكتوبر 2022. تم الاطلاع عليه بتاريخ 1 يوليو 2015 .
- 1 2 كلار ، راينر (01/02/1970). "1.5.3 تحويل ثنائي للأرقام العشرية المشفرة" [ 1.5.3 تحويل الأرقام العشرية المشفرة الثنائية ] . Digitale Rechenautomaten – Eine Einführung [ أجهزة الكمبيوتر الرقمية – مقدمة ] . Sammlung Göschen (في المانيا). المجلد. 1241/1241أ (1 طبعة). برلين، ألمانيا: Walter de Gruyter & Co. / GJ Göschen'sche Verlagsbuchhandlung . ص 17، 21. ردمك 3-11-083160-0. . رقم الأرشيف 7990709. مؤرشف من الأصل بتاريخ 18 أبريل 2020. تم الاطلاع عليه بتاريخ 13 أبريل 2020 .(205 صفحات) (ملاحظة: تتوفر طبعة معاد طباعتها عام 2019 من الطبعة الأولى تحت رقم ISBN 3-11002793-3،978-3-11002793-8( توجد أيضًا طبعة رابعة منقحة وموسعة .)
- 1 2 3 كلار ، راينر (1989) [1988/10/01]. "1.4 الأكواد: Binär verschlüsselte Dezimalzahlen" [ 1.4 الأكواد: الأرقام العشرية المشفرة الثنائية ] . Digitale Rechenautomaten – Eine Einführung in die Struktur von Computerhardware [ أجهزة الكمبيوتر الرقمية – مقدمة في هيكل أجهزة الكمبيوتر ] . Sammlung Göschen (في المانيا). المجلد. 2050 ( الطبعة الرابعة المعاد صياغتها). برلين، ألمانيا: Walter de Gruyter & Co. الصفحات 25، 28، 38– 39. ISBN 3-11011700-2. ص. 25:
[…] Die nicht erlaubten 0/1-Muster nennt man auch Pseudodezimalen. […]
(320 صفحة) - ^ شنايدر، هانز يوخن (1986). Lexikon der Informatik und Datenverarbeitung (باللغة الألمانية) (2 ed.). ر. أولدنبورغ فيرلاغ ميونيخ فيينا. رقم ISBN 3-486-22662-2.
- ^ تافيل، هانز يورج (1971). Einführung in die digitale Datenverarbeitung [ مقدمة لمعالجة المعلومات الرقمية ] (باللغة الألمانية). ميونيخ: دار نشر كارل هانسر . رقم ISBN 3-446-10569-7.
- ^ ستينبوخ، كارل دبليو . ويبر، وولفغانغ. هاينمان، تراوت، محرران. (1974) [1967]. Taschenbuch der Informatik - Band II - هيكل وبرمجة نظام EDV . Taschenbuch der Nachrichtenverarbeitung (باللغة الألمانية). المجلد. 2 (3 طبعة). برلين، ألمانيا: سبرينغر-فيرلاغ . رقم ISBN 3-540-06241-6. إل سي سي إن 73-80607 .
- ^ تيتز ، أولريش. شينك ، كريستوف (2012/12/06). الدوائر الإلكترونية المتقدمة . سبرينغر للعلوم والإعلام التجاري . رقم ISBN 978-36428124159783642812415. تم الاطلاع عليه بتاريخ 2015-08-05 .
- ↑ كوالسكي، إميل (2013-03-08) [1970]. الإلكترونيات النووية . سبرينغر-فيرلاغ . doi : 10.1007/978-3-642-87663-9 . ISBN 978-36428766399783642876639، 978-3-642-87664-6 . تم الاطلاع عليه بتاريخ 2015-08-05 .
- ^ فيريتي ، فيتوريو (13/03/2013). Wörterbuch der Elektronik, Datentechnik und Telekommunikation / قاموس الإلكترونيات والحوسبة والاتصالات السلكية واللاسلكية: الجزء 1: الألمانية-الإنجليزية / الجزء 1: الألمانية-الإنجليزية . المجلد. 1 (2 طبعة). سبرينغر-فيرلاغ. رقم ISBN 978-36429808869783642980886. تم الاطلاع عليه بتاريخ 2015-08-05 .
- ^ سبايزر، أمبروسيوس بول (1965) [1961]. Digitale Rechenanlagen - Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit [ أجهزة الكمبيوتر الرقمية - الأساسيات / الدوائر / التشغيل / الموثوقية ] (باللغة الألمانية) (2 ed.). ETH زيورخ ، زيورخ، سويسرا: Springer-Verlag / IBM . ص. 209. إل سي سي إن 65-14624 . 0978.
- ↑ كوليشو، مايك ف. (2015) [1981، 2008]. "الحساب العشري العام" . تم الاسترجاع في 2016-01-02 .
- ↑إيفانز، ديفيد سيلفستر (مارس 1961). "الفصل الرابع: المعدات المساعدة: مرحلات تشغيل المخرجات ومرحلات فحص التكافؤ لأجهزة التحويل الرقمي". البيانات الرقمية: اشتقاقها واختزالها للتحليل والتحكم في العمليات ( الطبعة الأولى). لندن، المملكة المتحدة: هيلجر آند واتس المحدودة / إنترساينس للنشر . الصفحات 46-64 [56-57] . تاريخ الاسترجاع: 24 مايو 2020 .(8+82 صفحة) (ملاحظة: يُعرف رمز BCD 8421 ذو 4 بتات مع بت تكافؤ إضافي مطبق كأقل بت أهمية لتحقيق التكافؤ الفردي للرمز الناتج ذي 5 بتات أيضًا باسم رمز فيرانتي .)
- ↑ لالا، باراغ ك. (2007). مبادئ التصميم الرقمي الحديث . جون وايلي وأولاده . ص 20-25 . ISBN 978-0-470-07296-7.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 بيرغر، إريك ر. (1962). "1.3.3. Die Codierung von Zahlen". كتبت في كارلسروه، ألمانيا. في ستينبوخ، كارل دبليو (محرر). Taschenbuch der Nachrichtenverarbeitung (باللغة الألمانية) (1 ed.). برلين / غوتنغن / نيويورك: Springer-Verlag OHG . ص 68 – 75. LCCN 62-14511 . (ملاحظة: إن رمز كاوتز الموضح ( II )، الذي يحتوي على جميع الحالات الثنائية الثمانية المتاحة مع عدد فردي من 1، هو تعديل طفيف لرمز كاوتز الأصلي ( I )، الذي يحتوي على جميع الحالات الثمانية مع عدد زوجي من 1، بحيث يؤدي عكس البتات الأكثر أهمية إلى إنشاء مكمل 9s .)
- 1 2 3 4 5 6 كامرير، فيلهلم [بالألمانية] (مايو 1969). “II.15.البنية: معلومات التعلم الآلي”. كتب في جينا، ألمانيا. في فروهاوف، هانز [بالألمانية] ؛ كامرير، فيلهلم؛ شرودر، كورز. وينكلر، هيلموت (محرران). الأتمتة الرقمية – Theorie، Struktur، Technik، Programmieren . Elektronisches Rechnen und Regeln (باللغة الألمانية). المجلد. 5 (1 طبعة). برلين، ألمانيا: Akademie-Verlag GmbH . ص. 161. رقم الترخيص. 202-100/416/69. رقم الطلب. 4666 و ق 20 ك3. (ملاحظة: توجد طبعة ثانية صدرت عام 1973 أيضاً.)
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 دوكتر، فولكرت ؛ شتاينهاور ، يورغن (18/06/1973). الالكترونيات الرقمية . مكتبة فيليبس التقنية (PTL) / تعليم ماكميلان (إعادة طباعة الطبعة الإنجليزية الأولى ). أيندهوفن، هولندا: The Macmillan Press Ltd. / NV Philips 'Gloeilampenfabrieken . دوى : 10.1007/978-1-349-01417-0 . رقم ISBN 978-1-349-01419-4SBN 333-13360-9أُرشف من المصدر الأصلي بتاريخ 16 يوليو 2020. تم الاطلاع عليه بتاريخ 11 مايو 2020 .(270 صفحة) (ملاحظة: هذا يعتمد على ترجمة المجلد الأول من الطبعة الألمانية المكونة من مجلدين.)
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 دوكتر، فولكرت ؛ شتاينهاور، يورغن (1975) [1969]. الإلكترونيات الرقمية في Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . فيليبس فاشبوخر (باللغة الألمانية). المجلد. أنا (تحسين وتوسيع الطبعة الخامسة). هامبورغ، ألمانيا: شركة Deutsche Philips GmbH . ص. 50. رقم ISBN 3-87145-272-6.(xii+327+3 صفحات) (ملاحظة: تم نشر الطبعة الألمانية من المجلد الأول في عامي 1969 و1971، وطبعتين في عامي 1972 و1975. وتم نشر المجلد الثاني في أعوام 1970 و1972 و1973 و1975.)
- 1 2 3 4 5 6 كاوتز، ويليام هـ. (يونيو 1954). "رابعًا. أمثلة أ. الرموز الثنائية للأعداد العشرية، ن = 4". ترميز البيانات الأمثل للحواسيب الرقمية . سجل مؤتمر معهد مهندسي الراديو، المؤتمر الوطني لعام 1954، الجزء 4 - الحواسيب الإلكترونية ونظرية المعلومات. الجلسة 19: نظرية المعلومات III - السرعة والحساب. معهد ستانفورد للأبحاث، ستانفورد، كاليفورنيا، الولايات المتحدة الأمريكية: معهد مهندسي الراديو، الصفحات 47-57 [49، 51-52 ، 57]. مؤرشف من الأصل في 2020-07-03 . تم الاسترجاع في 2020-07-03 . الصفحة 52:
[...] يُظهر العمود الأخير [من الجدول الثاني]، المسمى "الأفضل"، أعلى نسبة ممكنة مع أي رمز - وهي 0.60 - أي أفضل بمقدار النصف من أي رمز تقليدي. يُتحقق هذا الحد الأقصى باستخدام الرؤوس العشرة المميزة بكثافة في الرسم البياني للشكل
4
عندما n = 4، أو في الواقع، باستخدام أي مجموعة من عشرة تركيبات للرموز تتضمن جميعها ثمانية تركيبات تحتوي على عدد زوجي (أو جميعها ثمانية تركيبات تحتوي على عدد فردي) من الرقم "1". يسرد الصفان الثاني والثالث من الجدول الثاني متوسط وذروة التغير العشري لكل خطأ ثنائي واحد غير مكتشف، وقد تم اشتقاقهما باستخدام معادلات القسم الثاني لـ Δ1
و
δ1
.
يُحسب مؤشر التشويش للأعداد العشرية باستخدام معيار "التغير العشري" على أنه c
<sub>ij</sub>
= |i − j|، حيث
i,j = 0, 1, … 9. مرة أخرى، يُعد الترتيب "الأفضل" الممكن (وهو نفسه للمتوسط والذروة)، والذي يظهر أحدها في الشكل 4، أفضل بكثير من الرموز التقليدية. [...] الشكل 4:
رمز الحد الأدنى من التشويش للأعداد العشرية
. […] δ
1
= 2
Δ
1
= 15 […]
(11 صفحة) (ملاحظة: بالإضافة إلى المجموعة التوافقية من رموز BCD ذات 4 بت "الحد الأدنى من التشويش للأعداد العشرية"، والتي يوضح المؤلف واحدة منها صراحةً (مُعاد إنتاجها هنا كرمز I ) في شكل رسم بياني من 4 بت، يعرض المؤلف أيضًا رمزًا ثنائيًا من 16 حالة من 4 بت "للبيانات التناظرية" في شكل جدول رموز، والذي، مع ذلك، لا تتم مناقشته هنا. الرمز II المعروض هنا هو تعديل للرمز I الذي ناقشه بيرغر .) - 1 2 3 تشينال، جان ب. (يناير 1973). "الرموز". كُتبت في باريس، فرنسا. أساليب تصميم الأنظمة الرقمية . ترجمة: بريستون، آلان؛ سمر، آرثر ( الطبعة الإنجليزية الأولى). برلين، ألمانيا: أكاديمي-فيرلاغ / سبرينغر-فيرلاغ . ص 46. doi : 10.1007/978-3-642-86187-1_3 . ISBN 978-0-387-05871-9رقم الترخيص: 202-100/542/73. رقم الطلب: 7617470(6047) ES 19 B 1 / 20 K 3. تاريخ الاسترجاع: 21-06-2020 .(xviii+506 صفحة) (ملاحظة: الكتاب الأصلي الفرنسي لعام 1967 كان يحمل اسم "Techniques Booléennes et Calculateurs Arithmétiques"، الذي نشرته Éditions Dunod .)
- 1 2 دليل عسكري: أجهزة التشفير - تحويل زاوية العمود إلى رقمية (ملف PDF) . وزارة الدفاع الأمريكية . 30-09-1991. MIL-HDBK-231A. مؤرشف (ملف PDF) من الأصل بتاريخ 25-07-2020 . تم الاطلاع عليه بتاريخ 25-07-2020 .(ملاحظة: يحل محل MIL-HDBK-231(AS) (1970-07-01).)
- 1 2 سدادة، هربرت (مارس 1960). كتب في Litzelstetten، ألمانيا. رونج ، فيلهلم تولمي (محرر). ""إنشاء الرموز والسجلات Schaltung einer Zähldekade"." Telefunken-Zeitung (TZ) - Technisch-Wissenschaftliche Mitteilungen der Telefunken GMBH (باللغة الألمانية). 33 (127). برلين، ألمانيا: تليفونكن : 13-19 .(7 صفحات )
- 1 2 بوروكي، لورينز؛ ديتمان، يواكيم (1971) [يوليو 1970، 1966، خريف 1965]. “2.3 رموز Gebräuchliche في der digitalen Meßtechnik”. كتب في كريفيلد / كارلسروه، ألمانيا. Digitale Meßtechnik: Eine Einführung (بالألمانية) (2 ed.). برلين / هايدلبرغ، ألمانيا: سبرينغر-فيرلاغ . ص 10-23 [12-14]. دوى : 10.1007/978-3-642-80560-8 . رقم ISBN 3-540-05058-2LCCN 75-131547 . ISBN 978-3-642-80561-5.(ثماني صفحات + ٢٥٢ صفحة) الطبعة الأولى
- ↑ وايت، جارلاند س. (أكتوبر 1953). "أنظمة الأرقام العشرية المشفرة للحواسيب الرقمية". وقائع معهد مهندسي الراديو . 41 (10). معهد مهندسي الراديو (IRE): 1450-1452 . رمز Bibcode : 1953PIRE...41.1450W . doi : 10.1109/JRPROC.1953.274330 . eISSN 2162-6634 . ISSN 0096-8390 . S2CID 51674710 . (3 صفحات)
- ↑ "أنواع مختلفة من الشفرات الثنائية" . المركز الإلكتروني . 1 مايو 2019 [28 يناير 2015]. القسم 2.4 شفرة 5211. مؤرشف من الأصل في 18 مايو 2020. تم الاطلاع عليه في 4 أغسطس 2020 .
- ^ بول ماتياس ر. (10/08/1995) [1994]. "Unterbrechungsfreier Schleifencode" [ رمز الحلقة المستمرة ] . 1.02 (باللغة الألمانية) . تم الاسترجاع 2008-02-11 .(ملاحظة: أطلق المؤلف على هذا الكود اسم " Schleifencode" (أي "كود الحلقة"). وهو يختلف عن كود Gray BCD فقط في ترميز الحالة 0 لجعله كودًا دوريًا بمسافة وحدة لتطبيقات حلقات الانزلاق الدورانية ذات الدائرة الكاملة . إن تجنب نمط الكود ذي الأصفار يسمح بالاختبار الذاتي للحلقة واستخدام خطوط البيانات لتوزيع الطاقة دون انقطاع.)
- ↑ غراي، فرانك (17 مارس 1953) [13 نوفمبر 1947]. اتصالات الشفرة النبضية (ملف PDF) . نيويورك، الولايات المتحدة الأمريكية: مختبرات بيل للهواتف . براءة اختراع أمريكية رقم 2,632,058 . الرقم التسلسلي 785697. مؤرشف (ملف PDF) من الأصل بتاريخ 5 أغسطس 2020. تم الاطلاع عليه بتاريخ 5 أغسطس 2020 .(13 صفحة)
- ↑ جليكسون، هاري روبرت (مارس 1957). "هل يمكنك الاستفادة من الشفرة الثنائية العشرية الدورية؟" . هندسة التحكم . 4 (3). شركة النشر التقني ، قسم من شركة دان دونيلي للنشر، شركة دان وبرادستريت : 87-91 . ISSN 0010-8049 . (5 صفحات)
- ليدلي، روبرت ستيفن ؛ روتولو، لويس س.؛ ويلسون، جيمس بروس (1960). "الجزء 4. التصميم المنطقي لدوائر الحاسوب الرقمي؛ الفصل 15. العمليات الحسابية التسلسلية؛ الفصل 15-7. مواضيع إضافية". هندسة الحاسوب الرقمي والتحكم (ملف PDF) . سلسلة ماكجرو هيل للهندسة الكهربائية والإلكترونية ( الطبعة الأولى). نيويورك، الولايات المتحدة الأمريكية: شركة ماكجرو هيل للنشر (الطابعة: شركة مابل برس، يورك، بنسلفانيا، الولايات المتحدة الأمريكية). الصفحات 517-518 . ISBN 0-07036981-X. ردمك 2574-7916 . إل سي سي إن 59015055 . او سي ال سي 1033638267 . رأ 5776493 م. إس بي إن 07036981-X. . ark:/13960/t72v3b312. مؤرشف (PDF) من الأصل بتاريخ 19-02-2021 . تم الاطلاع عليه بتاريخ 19-02-2021 . صفحة 517:
[...] يتميز الترميز الدوري بميزة أساسية عند استخدامه في دوائر المرحلات، حيث لا يُعطي المرحل العالق حالة خاطئة نظرًا لتأخره في الانتقال من رقم دوري إلى آخر. وهناك العديد من الترميزات الدورية الأخرى التي تتمتع بهذه الخاصية. [...]
{{cite book}}عدم توافق رقم ISBN / التاريخ ( مساعدة )(xxiv+835+1 صفحة) (ملاحظة: صنف ليدلي الشفرة الدورية الموصوفة على أنها شفرة ثنائية مشفرة عشرية دورية .) - 1 2 3 4 سافارد، جون جي جي (2018) [2006]. "التمثيلات العشرية" . quadibloc . مؤرشف من الأصل بتاريخ 16-07-2018 . تم الاسترجاع بتاريخ 16-07-2018 .
- ↑ بيثريك، إدوارد جون (أكتوبر 1953). نظام عشري مشفر ثنائي دوري متقدم لتمثيل الأرقام (مذكرة فنية MS15). فارنبورو، المملكة المتحدة: المؤسسة الملكية للطائرات (RAE).(4 صفحات) (ملاحظة: يُشار إليه أحيانًا باسم نظام الترميز الدوري الثنائي المشفر العشري لتمثيل الأرقام .)
- ↑ بيثريك، إدوارد جون؛ هوبكنز، أ. ج. (1958). بعض الأجهزة الرقمية المطورة حديثًا لترميز دوران الأعمدة (مذكرة فنية MS21). فارنبورو، المملكة المتحدة: المؤسسة الملكية للطائرات (RAE).
- 1 2 أوبراين، جوزيف أ. (مايو 1956) [15 نوفمبر 1955، 23 يونيو 1955]. "رموز عشرية دورية لمحولات التناظرية إلى الرقمية" . معاملات المعهد الأمريكي للمهندسين الكهربائيين، الجزء الأول: الاتصالات والإلكترونيات . 75 (2). مختبرات بيل للهاتف، وييباني، نيو جيرسي، الولايات المتحدة الأمريكية: 120-122 . رمز Bibcode : 1956TAICE..75..120O . doi : 10.1109/TCE.1956.6372498 . ISSN 0097-2452 . S2CID 51657314. ورقة بحثية 56-21. مؤرشفة من الأصل في 18 مايو 2020. تم الاسترجاع في 18 مايو 2020 . (3 صفحات) (ملاحظة: تم إعداد هذه الورقة للعرض في الاجتماع العام الشتوي لجمعية مهندسي الكهرباء والإلكترونيات، نيويورك، الولايات المتحدة الأمريكية، من 30 يناير 1956 إلى 3 فبراير 1956.)
- 1 2 تومبكينز، هوارد إي. (سبتمبر 1956) [1956-07-16]. "رموز ثنائية-عشرية ذات مسافة وحدة للتبديل ثنائي المسار" . معاملات IRE في الحواسيب الإلكترونية . مراسلات. EC-5 (3). كلية مور للهندسة الكهربائية ، جامعة بنسلفانيا ، فيلادلفيا، بنسلفانيا، الولايات المتحدة الأمريكية: 139. Bibcode : 1956IRTEC...5..139T . doi : 10.1109/TEC.1956.5219934 . ISSN 0367-9950 . مؤرشف من الأصل في 2020-05-18 . تم الاسترجاع في 2020-05-18 . (صفحة واحدة)
- ↑ ليبيل، برنارد (ديسمبر 1955). "رمز عشري للتحويل من تناظري إلى رقمي". معاملات معهد مهندسي الراديو في الحواسيب الإلكترونية . EC-4 (4): 158-159 . Bibcode : 1955IRTEC...4..158L . doi : 10.1109/TEC.1955.5219487 . ISSN 0367-9950 . (صفحتان)
- ١ ٢ ٣ ساسكيند، ألفريد كريس؛ وارد، جون إروين (٢٨ مارس ١٩٥٨) [١٩٥٧، ١٩٥٦]. "III.F. رموز المسافة الموحدة / VI.E.2. الرموز الثنائية المعكوسة". كُتب في كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية. في ساسكيند، ألفريد كريس (محرر). ملاحظات حول تقنيات التحويل التناظري الرقمي . كتب التكنولوجيا في العلوم والهندسة. المجلد ١ ( الطبعة الثالثة). نيويورك، الولايات المتحدة الأمريكية: مطبعة التكنولوجيا التابعة لمعهد ماساتشوستس للتكنولوجيا / جون وايلي وأولاده، وشركة / تشابمان وهول المحدودة. الصفحات ٣-٧–٣-٨ [٣-٧]، ٣-١٠–٣-١٦ [٣-١٣–٣-١٦]، ٦-٦٥–٦-٦٠ [٦-٦٠]. (x+416+2 صفحة) (ملاحظة: تم إعداد محتويات الكتاب في الأصل من قبل أعضاء هيئة التدريس في مختبر الآليات المؤازرة ، قسم الهندسة الكهربائية، معهد ماساتشوستس للتكنولوجيا ، لبرامج صيفية خاصة عُقدت في عامي 1956 و1957. يُعرض الكود الذي قدمه سوسكيند في عمله على أنه "كود من نوع القراءة" هنا على أنه كود من النوع الثاني، بينما يُعد كود النوع الأول اشتقاقًا طفيفًا مع تبديل عمودي البت الأكثر أهمية لتوضيح التناظرات بشكل أفضل.)
- 1 2 يوين، تشون-كوونغ (ديسمبر 1977). " تمثيل جديد للأعداد العشرية" . معاملات IEEE في الحوسبة . C-26 (12): 1286-1288 . Bibcode : 1977ITCmp.100.1286Y . doi : 10.1109/TC.1977.1674792 . S2CID 40879271. مؤرشف من الأصل في 2020-08-08 . تم الاسترجاع في 2020-08-08 .
- ↑ لوكال، هارولد م. (ديسمبر 1959). "العمليات الحسابية للحواسيب الرقمية باستخدام نظام ثنائي معكوس مُعدَّل". معاملات معهد مهندسي الراديو في الحواسيب الإلكترونية . EC-8 (4): 449-458 . doi : 10.1109/TEC.1959.5222057 . ISSN 0367-9950 . S2CID 206673385 . (10 صفحات)
- ↑ ديوار، روبرت بيريديل كيث ؛ سموسنا، ماثيو (1990). المعالجات الدقيقة - وجهة نظر المبرمج ( الطبعة الأولى). معهد كورانت ، جامعة نيويورك ، نيويورك، الولايات المتحدة الأمريكية: شركة ماكجرو هيل للنشر . ص 14. ISBN 0-07-016638-2. إل سي سي إن 89-77320 . (١٨+٤٦٢ صفحة)
- ↑ "الفصل الثامن: تعليمات الأعداد العشرية". مبادئ تشغيل نظام IBM System/370 . شركة IBM . مارس 1980.
- ↑ "الفصل 3: تمثيل البيانات". دليل بنية PDP-11 . شركة المعدات الرقمية . 1983.
- 1 2 دليل بنية VAX-11 . شركة المعدات الرقمية . 1985.
- ↑ "مرجع لعبة تقمص الأدوار ILE" .
- ↑ "مخطط رموز الأحرف IBM 1401/1440/1460/1410/7010 بترتيب BCD" (PDF) .
- ↑ "مجموعة تعليمات 6502" . مؤرشفة من الأصل بتاريخ 2018-05-08.
- ↑ "رموز عمليات NMOS 6502" . مؤرشف من الأصل بتاريخ 2016-01-14.
- ↑ "مجموعة تعليمات معالج 68000" (ملف PDF) . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 20 نوفمبر 2023. تم الاطلاع عليه بتاريخ 21 نوفمبر 2023 .(58 صفحة)
- ↑ دليل مطوري البرامج لبنيتي Intel 64 و IA-32، المجلد 1: البنية الأساسية (ملف PDF) . Intel. مارس 2013. القسم 4.7. مؤرشف (ملف PDF) من الأصل بتاريخ 2013-04-02 . تم الاطلاع عليه بتاريخ 2013-04-23 .
- ↑ "4.7 أعداد BCD الصحيحة وأعداد BCD المعبأة". دليل مطوري برامج معمارية Intel 64 و IA-32، المجلد 1: المعمارية الأساسية (PDF) . الإصدار 072. المجلد 1. شركة Intel . 2020-05-27 [1997]. الصفحات 3-2 ، 4-9-4-11 [4-10]. 253665-072US. مؤرشف (PDF) من الأصل في 2020-08-06 . تم الاسترجاع في 2020-08-06 . الصفحات 4-10:
[...] عند التعامل مع أعداد BCD الصحيحة في
سجلات الأغراض العامة
، يمكن فك ضغط قيم BCD (رقم BCD واحد لكل بايت) أو ضغطها (رقمان BCD لكل بايت). قيمة عدد صحيح BCD غير مُعبأ هي القيمة الثنائية لنصف
البايت
الأدنى (البتات من 0 إلى 3). يمكن أن يكون نصف البايت الأعلى (البتات من 4 إلى 7) أي قيمة أثناء الجمع والطرح، ولكنه يجب أن يكون صفرًا أثناء الضرب والقسمة. تسمح أعداد BCD المُعبأة باحتواء رقمين BCD في بايت واحد. هنا، يكون الرقم الموجود في نصف البايت الأعلى أكثر أهمية من الرقم الموجود في نصف البايت الأدنى. [...] عند التعامل مع أعداد BCD في سجلات بيانات
وحدة المعالجة النقطية
x87
، تُعبأ قيم BCD بتنسيق 80 بت وتُسمى أعدادًا صحيحة عشرية. في هذا التنسيق، تحتوي البايتات التسعة الأولى على 18 رقم BCD، أي رقمين لكل بايت. يُخزَّن الرقم
الأقل
أهمية
في النصف السفلي من البايت 0، بينما يُخزَّن
الرقم الأكثر أهمية
في النصف العلوي من البايت 9. يحتوي البت الأكثر أهمية في البايت 10 على
بت الإشارة
(0 = موجب و1 = سالب؛ البتات من 0 إلى 6 في البايت 10 هي بتات
غير مهمة
). لا تُخزَّن الأعداد العشرية السالبة بصيغة
المتمم الثنائي
؛ ويتم تمييزها عن الأعداد العشرية الموجبة فقط من خلال بت الإشارة. يتراوح نطاق الأعداد العشرية التي يمكن ترميزها بهذه الصيغة من -10^
18
+ 1 إلى 10
^18
- 1. توجد صيغة الأعداد العشرية في الذاكرة فقط. عند تحميل عدد عشري في سجل بيانات وحدة معالجة الفاصلة العائمة x87، يتم تحويله تلقائيًا إلى
صيغة الفاصلة العائمة ذات الدقة المزدوجة الموسعة
. يمكن تمثيل جميع الأعداد العشرية بدقة تامة باستخدام صيغة الدقة المزدوجة الموسعة. […]
- ↑ جونز، دوغلاس و. (25-11-2015) [1999]. "حساب BCD، دليل تعليمي" . دروس في الحساب . مدينة آيوا، آيوا، الولايات المتحدة الأمريكية: جامعة آيوا ، قسم علوم الحاسوب . تم الاسترجاع في 3-1-2016 .
- ↑ جامعة أليكانتي. "بنية قائمة على كورديك لإجراء حسابات عشرية عالية الأداء" (ملف PDF) . معهد مهندسي الكهرباء والإلكترونيات . مؤرشف (ملف PDF) من الأصل بتاريخ 5 يناير 2010. تم الاطلاع عليه بتاريخ 15 أغسطس 2015 .
- ↑ "تدوير CORDIC العشري القائم على الاختيار بالتقريب: الخوارزمية والبنية" (ملف PDF) . الجمعية البريطانية للحاسبات . مؤرشف (ملف PDF) من الأصل بتاريخ 9 أكتوبر 2022. تم الاطلاع عليه بتاريخ 14 أغسطس 2015 .
- ↑ ماثور، أديتيا ب. (1989). مقدمة في المعالجات الدقيقة ( الطبعة الثالثة). شركة تاتا ماكجرو هيل للنشر المحدودة . ISBN 978-0-07-460222-5.
- ↑ 3GPP TS 29.002: مواصفات جزء تطبيقات الهاتف المحمول (MAP) (تقرير فني). 2013. القسم 17.7.8 أنواع البيانات الشائعة.
- ↑ "إرشادات بروتوكولات الإشارة والتحويل (SPS) لاستخدام تدوين بناء الجملة المجرد رقم 1 (ASN.1) في بروتوكولات تطبيقات الاتصالات" (ملف PDF) . صفحة 15. مؤرشف (ملف PDF) من الأصل بتاريخ 2013-12-04.
- ↑ "مواصفات جزء تطبيق XOM للأجهزة المحمولة (XMAP)" (ملف PDF) . صفحة 93. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 21-02-2015 . تم الاطلاع عليه بتاريخ 27-06-2013 .
- ↑ "بروتوكول الطبقة غير المخصصة للوصول (NAS) لنظام الجيل الخامس (5GS)؛ المرحلة 3. (3GPP TS 24.501 الإصدار 16.10.0 الإصدار 16) TS 24.501 الإصدار 16.10.0" (ملف PDF) . ETSI و 3GPP . مؤرشف (PDF) من الأصل بتاريخ 17 فبراير 2022. تم الاطلاع عليه بتاريخ 26 فبراير 2022 .(TS 24.501)
- ↑ "نظام الاتصالات الخلوية الرقمية (المرحلة 2+) (GSM)؛ نظام الاتصالات المتنقلة العالمي (UMTS)؛ LTE؛ 5G؛ الترقيم والعنونة والتعريف (3GPP TS 23.003 الإصدار 16.8.0 الإصدار 16)" (ملف PDF) . ETSI و 3GPP . مؤرشف (PDF) من الأصل بتاريخ 26-02-2022 . تم الاطلاع عليه بتاريخ 26-02-2022 .(TS 23.003)
- ↑ "دوائر عداد المؤقت في جهاز كمبيوتر IBM" (ملف PDF) . www.se.ecu.edu.au. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 10 أكتوبر 2008. تم الاطلاع عليه بتاريخ 22 مايو 2022 .(7 صفحات)
- ↑ ورقة بيانات MC6818
- ↑ غوتشالك ضد بينسون ، 409 الولايات المتحدة 63، 72 (1972) .
للمزيد من القراءة
- ماكنزي، تشارلز إي. (1980). مجموعات الأحرف المشفرة، تاريخها وتطورها (ملف PDF) . سلسلة برمجة الأنظمة ( الطبعة الأولى). شركة أديسون-ويسلي للنشر. رقم ISBN 978-0-201-14460-4LCCN 77-90165 . مؤرشف ( PDF) من الأصل بتاريخ 26 مايو 2016. تم الاطلاع عليه بتاريخ 25 أغسطس 2019 .
- ريتشاردز، ريتشارد كولر (1955). العمليات الحسابية في الحواسيب الرقمية . نيويورك، الولايات المتحدة الأمريكية: فان نوستراند . ص 397–.
- شميد، هيرمان (1974). الحساب العشري ( الطبعة الأولى). بينغهامتون، نيويورك، الولايات المتحدة الأمريكية: جون وايلي وأولاده . ISBN 0-471-76180-X.وشميد ، هيرمان (1983) [1974]. الحساب العشري (الطبعة الأولى (إعادة طبع) ). مالابار، فلوريدا، الولايات المتحدة الأمريكية: شركة روبرت إي. كريجر للنشر. ISBN 0-89874-318-4.(ملاحظة: بعض دفعات طبعة كريجر المعاد طباعتها كانت تحتوي على أخطاء مطبعية مع صفحات معيبة من 115 إلى 146.)
- ماسالين، هنري (أكتوبر 1987). كاتز، راندي (محرر). "المُحسِّن الفائق: نظرة على أصغر برنامج" (ملف PDF) . مجلة ACM SIGOPS لاستعراض أنظمة التشغيل . 21 (4): 122-126 . doi : 10.1145/36204.36194 . ISBN 0-8186-0805-6تمت أرشفة الملف (PDF) من النسخة الأصلية بتاريخ 2017-07-04 . تم الاطلاع عليه بتاريخ 2012-04-25 .(أيضًا: ACM SIGPLAN Notices، المجلد 22 #10، مطبعة جمعية IEEE للحاسبات #87CH2440-6، أكتوبر 1987)
- "GNU Superoptimizer" . HP-UX .
- شيرازي، بهروز؛ يون، ديفيد واي واي؛ تشانغ، تشانغ إن. (مارس 1988). تصميمات الدوائر المتكاملة واسعة النطاق (VLSI) لجمع الأعداد العشرية المشفرة ثنائيًا بشكل زائد . المؤتمر الدولي السنوي السابع لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) حول الحوسبة والاتصالات، 1988. معهد مهندسي الكهرباء والإلكترونيات . الصفحات 52-56 .
- براون؛ فرانزيتش (2003). أساسيات المنطق الرقمي .
- ثابليال، هيمانشو؛ عربنيا، حامد ر. (نوفمبر 2006). جامع BCD مُعدَّل بتقنية التنبؤ بالحمل مع تنفيذ CMOS ومنطق عكسي . وقائع المؤتمر الدولي لتصميم الحاسوب لعام 2006 (CDES'06). مطبعة CSREA. الصفحات 64-69 . ISBN 1-60132-009-4.
- كايفاني، أ.؛ الحسيني، أ.؛ زاكر؛ جورجين، س.؛ فضلالي، م. (ديسمبر 2006). التنفيذ العكسي لمحول الأرقام العشرية المضغوطة بكثافة من وإلى تنسيق الأرقام العشرية المشفرة ثنائيًا باستخدام معيار IEEE-754R . المؤتمر الدولي التاسع لتكنولوجيا المعلومات (ICIT'06). IEEE . الصفحات 273-276 .
- كوليشو، مايك ف. (2009) [2002، 2008]. "قائمة مراجع حول الحساب العشري - حسب الفئة" . الحساب العشري العام . آي بي إم . تاريخ الاسترجاع: 2016-01-02 .
روابط خارجية
- كوليشو، مايك ف. (2014) [2000]. "ملخص لترميز بيانات تشين-هو العشرية" . الحساب العشري العام . آي بي إم . تم الاسترجاع في 2 يناير 2016 .
- كوليشو، مايك ف. (2007) [2000]. "ملخص لترميز الأعداد العشرية المكتظة" . الحساب العشري العام . آي بي إم . تم الاسترجاع في 2016-01-02 .
- حوّل نظام BCD إلى النظام العشري والثنائي والسداسي عشري والعكس.
- BCD لجافا
- الحساب الحاسوبي
- أنظمة الأرقام
- أنظمة الأرقام الموضعية غير القياسية
- الحساب الثنائي
