عدد عشري مشفر ثنائيًا

قد تستخدم الساعة الثنائية مصابيح LED للتعبير عن القيم الثنائية. في هذه الساعة، يُظهِر كل عمود من مصابيح LED رقمًا عشريًا مشفرًا ثنائيًا للوقت الستيني التقليدي .

في أنظمة الحوسبة والإلكترونيات ، يعد النظام العشري المشفر ثنائيًا ( BCD ) فئة من الترميزات الثنائية للأرقام العشرية حيث يتم تمثيل كل رقم بعدد ثابت من البتات ، عادةً أربعة أو ثمانية. في بعض الأحيان، تُستخدم أنماط بت خاصة لإشارة أو مؤشرات أخرى (مثل الخطأ أو الفائض).

في الأنظمة الموجهة بالبايتات (أي معظم أجهزة الكمبيوتر الحديثة)، يشير مصطلح BCD غير المضغوط [1] عادةً إلى بايت كامل لكل رقم (غالبًا ما يتضمن علامة)، بينما يقوم BCD المضغوط عادةً بتشفير رقمين داخل بايت واحد من خلال الاستفادة من حقيقة أن أربعة بتات كافية لتمثيل النطاق من 0 إلى 9. ومع ذلك، قد يختلف التشفير الدقيق المكون من أربعة بتات لأسباب فنية (على سبيل المثال Excess-3 ).

تُسمى الحالات العشر التي تمثل رقم BCD أحيانًا بالرباعيات [2] [3] ( تُعرف أيضًا النقط المطلوبة عادةً لحملها باسم رباعي) بينما تُسمى الحالات غير المستخدمة التي لا تهتم بالرباعيات الزائفة [  de] ، [4] [ 5] [6] [7] [8] أو الأرقام شبه العشرية [3] أو الأرقام شبه العشرية . [9] [10] [nb 1]

الميزة الرئيسية لنظام BCD، بالمقارنة بأنظمة المواضع الثنائية ، هي تمثيله الأكثر دقة وتقريبه للكميات العشرية، فضلاً عن سهولة تحويله إلى تمثيلات تقليدية يمكن للإنسان قراءتها. تتمثل عيوبه الرئيسية في زيادة طفيفة في تعقيد الدوائر اللازمة لتنفيذ الحساب الأساسي بالإضافة إلى تخزين أقل كثافة قليلاً.

تم استخدام BCD في العديد من أجهزة الكمبيوتر العشرية المبكرة ، وتم تنفيذه في مجموعة التعليمات الخاصة بالأجهزة مثل سلسلة IBM System/360 وأحفادها، و VAX من شركة Digital Equipment Corporation ، و Burroughs B1700 ، ومعالجات سلسلة Motorola 68000 .

لا يتم استخدام BCD في حد ذاته على نطاق واسع كما كان في الماضي، وهو غير متوفر أو محدود في مجموعات التعليمات الأحدث (على سبيل المثال، ARM ؛ x86 في الوضع الطويل ). ومع ذلك، لا تزال تنسيقات النقطة الثابتة العشرية والنقطة العائمة العشرية مهمة وتستمر في الاستخدام في الحوسبة المالية والتجارية والصناعية، حيث لا يمكن التسامح مع أخطاء التحويل الدقيقة والتقريب الكسري المتأصلة في تنسيقات النقطة العائمة الثنائية. [11]

خلفية

يستفيد نظام BCD من حقيقة مفادها أنه يمكن تمثيل أي رقم عشري واحد بنمط مكون من أربعة بتات. ومن الطرق الواضحة لترميز الأرقام نظام BCD الطبيعي (NBCD)، حيث يتم تمثيل كل رقم عشري بقيمته الثنائية المكونة من أربعة بتات، كما هو موضح في الجدول التالي. ويُطلق على هذا أيضًا اسم الترميز "8421".

رقم عشري بى دى سى
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

يمكن أيضًا الإشارة إلى هذا المخطط باسم Simple Binary-Coded Decimal ( SBCD ) أو BCD 8421 ، وهو الترميز الأكثر شيوعًا. [12] وتشمل المخططات الأخرى ما يسمى بالترميز "4221" و"7421" - المسمى على اسم الترجيح المستخدم للبتات - و" Excess-3 ". [13] على سبيل المثال، الرقم 6 في BCD، 0110'bفي تدوين 8421، موجود 1100'bفي 4221 (ترميزان ممكنان)، 0110'bفي 7421، بينما في Excess-3 يكون 1001'b( ).

رموز BCD ذات 4 بتات ورموز رباعية وهمية
قليل وزن  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 عشري
8 4 2 1 (XS-0) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [14] [15] [16] [17] [ملاحظة 2]
7 4 2 1 0 1 2 3 4 5 6   7 8 9           [18] [19] [20]
ايكين (2 4 2 1) 0 1 2 3 4             5 6 7 8 9 [14] [15] [16] [17] [ملاحظة 3]
الفائض-3 (XS-3) -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 [14] [15] [16] [17] [ملاحظة 2]
فائض-6 (XS-6) -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 [18] [ملاحظة 2]
القفز عند 2 (2 4 2 1) 0 1             2 3 4 5 6 7 8 9 [16] [17]
القفز عند 8 (2 4 2 1) 0 1 2 3 4 5 6 7             8 9 [21] [22] [16] [17] [ملاحظة 4]
4 2 2 1 (أ) 0 1 2 3     4 5         6 7 8 9 [16] [17]
4 2 2 1 (ثانيا) 0 1 2 3     4 5     6 7     8 9 [21] [22]
5 4 2 1 0 1 2 3 4       5 6 7 8 9       [18] [14] [16] [17]
5 2 2 1 0 1 2 3     4   5 6 7 8     9   [14] [16] [17]
5 1 2 1 0 1 2 3       4 5 6 7 8       9 [19]
5 3 1 1 0 1   2 3 4     5 6   7 8 9     [16] [17]
أبيض (5 2 1 1) 0 1   2   3   4 5 6   7   8   9 [23] [18] [14] [16] [17]
5 2 1 1 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] [ملاحظة 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]
4 3 1 1 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] [ملاحظة 5]
أوبراين الأول (واتس) 0 1 3 2     4   9 8 6 7     5   [32] [14] [16] [17] [ملاحظة 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] [ملاحظة 7] [ملاحظة 2]
6 3 −2 −1 (أ)         3 2 1 0   5 4 8 9   7 6 [29] [36]
6 3 −2 −1 (ثانياً) 0       3 2 1   6 5 4   9 8 7   [29] [36]
8 4 −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]
كاوتز الثاني   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

 
رقم
بى سى دى
8 4 2 1
 كود ستيبيتز أو Excess-3 كود أيكين أو BCD
2 4 2 1
بى سى دى
8 4 −2 −1
آي بي إم 702 ، آي بي إم 705 ، آي بي إم 7080 ، آي بي إم 1401 8421
أسكي
0000 8421
المركز الأوروبي لبحوث
السرطان 0000 8421
0 0000 0011 0000 0000 1010 0011 0000 1111 0000
1 0001 0100 0001 0111 0001 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 0011 0100 1111 0100
5 0101 1000 1011 1011 0101 0011 0101 1111 0101
6 0110 1001 1100 1010 0110 0011 0110 1111 0110
7 0111 1010 1101 1001 0111 0011 0111 1111 0111
8 1000 1011 1110 1000 1000 0011 1000 1111 1000
9 1001 1100 1111 1111 1001 0011 1001 1111 1001

نظرًا لأن معظم أجهزة الكمبيوتر تتعامل مع البيانات في بايتات مكونة من 8 بتات ، فمن الممكن استخدام إحدى الطرق التالية لترميز رقم BCD:

  • تم فك الضغط : يتم تشفير كل رقم عشري في بايت واحد، حيث تمثل أربعة بتات الرقم، بينما لا تحتوي البتات المتبقية على أي أهمية.
  • مُعبأة : يتم ترميز رقمين عشريين في بايت واحد، حيث يكون أحد الرقمين في البت الأقل أهمية ( البتات من 0 إلى 3 ) والرقم الآخر في البت الأكثر أهمية (البتات من 4 إلى 7). [ملاحظة 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 معبأة

في BCD المعبأ (أو العشري المعبأ [38] )، يمثل كل نيبل رقمًا عشريًا. [nb 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)).

علامة
الرقم
بى سى دى
8 4 2 1
لافتة ملحوظات
أ 1 0 1 0 +  
ب 1 0 1 1 -  
ج 1 1 0 0 + مفضل
د 1 1 0 1 - مفضل
هـ 1 1 1 0 +  
ف 1 1 1 1 + غير موقّع

بغض النظر عن عدد البايتات التي يبلغ عرض الكلمة ، يوجد دائمًا عدد زوجي من النيبلز لأن كل بايت يحتوي على اثنين منها. لذلك، يمكن أن تحتوي كلمة مكونة من n بايت على ما يصل إلى (2 n )−1 رقمًا عشريًا، وهو دائمًا عدد فردي من الأرقام. يتطلب الرقم العشري الذي يحتوي على d أرقام 1/2( د +1) بايت من مساحة التخزين.

على سبيل المثال، يمكن لكلمة مكونة من 4 بايتات (32 بت) أن تحتوي على سبعة أرقام عشرية بالإضافة إلى علامة ويمكن أن تمثل قيمًا تتراوح من ±9,999,999. وبالتالي فإن الرقم −1,234,567 يتكون من 7 أرقام ويتم ترميزه على النحو التالي:

0001 0010 0011 0100 0101 0110 0111 1101
1 2 3 4 5 6 7 −

كما هو الحال مع سلاسل الأحرف، يتم عادةً تخزين البايت الأول من العدد العشري المضغوط - الذي يحتوي على الرقمين الأكثر أهمية - في أدنى عنوان في الذاكرة، بغض النظر عن ترتيب الجهاز.

على النقيض من ذلك، يمكن أن يمثل عدد صحيح مكمل ثنائي مكون من 4 بايتات قيمًا تتراوح من −2,147,483,648 إلى +2,147,483,647.

في حين أن BCD المعبأة لا تحقق الاستخدام الأمثل للتخزين (باستخدام ذاكرة أكبر بنحو 20% من الترميز الثنائي لتخزين نفس الأرقام)، فإن التحويل إلى ASCII أو EBCDIC أو الترميزات المختلفة لـ Unicode يتم بشكل تافه، حيث لا يلزم إجراء عمليات حسابية. عادة ما يتم تعويض متطلبات التخزين الإضافية بالحاجة إلى الدقة والتوافق مع الآلة الحاسبة أو الحساب اليدوي الذي توفره الحسابات العشرية ذات النقطة الثابتة. توجد حزم أكثر كثافة من BCD تتجنب عقوبة التخزين ولا تحتاج أيضًا إلى عمليات حسابية للتحويلات الشائعة.

يتم دعم Packed BCD في لغة برمجة COBOL كنوع بيانات "COMPUTATIONAL-3" (امتداد IBM الذي تبناه العديد من بائعي المترجمات الآخرين) أو "PACKED-DECIMAL" (جزء من معيار COBOL لعام 1985). وهو مدعوم في PL/I كنوع بيانات "FIXED DECIMAL". بجانب أجهزة الكمبيوتر المركزية المتوافقة مع IBM System/360 والإصدارات الأحدث، يتم تنفيذ Packed 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 7ج
 12 34.56 7+

لا يتم تخزين النقطة العشرية في الذاكرة فعليًا، حيث لا يوفرها تنسيق تخزين BCD المضغوط. موقعها معروف ببساطة للمترجم، ويعمل الكود الناتج وفقًا لذلك للعمليات الحسابية المختلفة.

ترميزات ذات كثافة أعلى

إذا كان الرقم العشري يتطلب أربعة بتات، فإن ثلاثة أرقام عشرية تتطلب 12 بتًا. ومع ذلك، نظرًا لأن 2 10 (1,024) أكبر من 10 3 (1,000)، فإذا تم ترميز ثلاثة أرقام عشرية معًا، فلن تكون هناك حاجة إلا إلى 10 بتات. هناك نوعان من هذه الترميزات هما ترميز Chen–Ho وترميز العشرية المعبأة بكثافة (DPD). يتمتع الأخير بميزة أن مجموعات فرعية من الترميز تشفر رقمين في سبعة بتات مثالية ورقم واحد في أربعة بتات، كما هو الحال في ترميز BCD العادي.

عدد عشري مقسم إلى مناطق

تدعم بعض التطبيقات، على سبيل المثال أنظمة IBM المركزية، التمثيلات الرقمية العشرية المقسمة إلى مناطق . يتم تخزين كل رقم عشري في بايت واحد، مع ترميز البتات الأربعة السفلية للرقم في شكل BCD. يتم عادةً تعيين البتات الأربعة العلوية، المسماة بتات "المنطقة"، على قيمة ثابتة بحيث يحتوي البايت على قيمة حرفية تتوافق مع الرقم. تستخدم أنظمة EBCDIC قيمة منطقة 1111 (ست عشري F)؛ وهذا ينتج بايتات في النطاق من F0 إلى F9 (ست عشري)، وهي أكواد EBCDIC للأحرف "0" إلى "9". وبالمثل، تستخدم أنظمة ASCII قيمة منطقة 0011 (ست عشري 3)، مما يعطي أكواد حرف من 30 إلى 39 (ست عشري).

بالنسبة للقيم العشرية المقسمة إلى مناطق والمشار إليها، فإن الجزء الأيمن (الأقل أهمية) من المنطقة يحمل رقم الإشارة، وهو نفس مجموعة القيم المستخدمة للأرقام العشرية المقسمة إلى مناطق والمشار إليها (انظر أعلاه). وبالتالي فإن القيمة العشرية المقسمة إلى مناطق والمشفرة على هيئة بايتات سداسية عشرية F1 F2 D3 تمثل القيمة العشرية المقسمة إلى مناطق والمشار إليها −123:

ف1 ف2 د3
1 2 −3

جدول تحويل الأعداد العشرية حسب المناطق EBCDIC

رقم BCD سداسي عشري حرف EBCDIC
0+ ثاني أكسيد الكربون أ0 هـ0 ف0 { (*)   \ (*) 0
1+ ج1 أ1 ه1 ف1 أ ~ (*)   1
2+ سي 2 أ2 هـ2 ف2 ب س س 2
3+ سي 3 أ3 معرض E3 ف3 ج ت ت 3
4+ سي 4 أ4 ه4 ف4 د انت و 4
5+ سي5 أ5 ه5 ف5 هـ ف الخامس 5
6+ سي6 أ6 ه6 ف6 ف و و 6
7+ سي7 أ7 ه7 ف7 ج س إكس 7
8+ سي 8 أ8 ه8 ف8 ح ي ي 8
9+ سي 9 أ9 ه9 ف9 أنا ز ز 9
0− د0 ب0     } (*) ^ (*)    
1- د1 ب1     ج      
2- د2 ب2     ك      
3- د3 ب3     ل      
4- د4 ب4     م      
5- د5 ب5     ن      
6- د6 ب6     ا      
7- د7 ب7     ص      
8- د8 ب8     س      
9- د9 ب9     ر      

(*) ملاحظة: تختلف هذه الأحرف وفقًا لإعداد صفحة رمز الحرف المحلي .

عدد عشري ثابت مقسم إلى مناطق

تدعم بعض اللغات (مثل 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 4 = 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 (مجمع الضبط العشري).

الطرح

يتم إجراء عملية الطرح عن طريق إضافة المكمل العشري للمطروح إلى المطروح . لتمثيل إشارة رقم في BCD، يتم استخدام الرقم 0000 لتمثيل رقم موجب ، ويتم استخدام 1001 لتمثيل رقم سالب . التركيبات الـ 14 المتبقية هي إشارات غير صالحة. لتوضيح عملية الطرح باستخدام BCD، ضع في اعتبارك المسألة التالية: 357 − 432.

في BCD الموقّع، 357 يساوي 0000 0011 0101 0111. يمكن الحصول على المكمّل العشري للعدد 432 عن طريق أخذ المكمّل التسعة للعدد 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 0010 0101
  9 9 2 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 مصطلحات Binary-Coded Decimal Interchange Code (BCDIC، وأحيانًا تسمى BCD فقط)، للرموز الأبجدية الرقمية المكونة من 6 بتات والتي تمثل الأرقام والأحرف الكبيرة والأحرف الخاصة. يتم استخدام بعض الاختلافات في أبجديات BCDIC في معظم أجهزة كمبيوتر IBM المبكرة، بما في ذلك IBM 1620 (تم تقديمه في عام 1959)، وسلسلة IBM 1400 ، وأعضاء البنية غير العشرية في سلسلة IBM 700/7000 .

سلسلة IBM 1400 عبارة عن آلات قابلة للعنونة بالأحرف، حيث يتكون كل موقع من ستة بتات تحمل علامات B وA و8 و4 و2 و بالإضافة إلى بت فحص التكافؤ الفردي ( 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 إلى أرقام قابلة للعنونة مكونة من 6 بتات، حيث يتم استخدام الأرقام المعتادة 8 و4 و2 و1 بالإضافة إلى F كبت إشارة و C كبت فحص تكافؤ فردي. يتم ترميز أبجديات BCD باستخدام أزواج الأرقام، مع وجود "المنطقة" في الرقم ذي العنوان الزوجي و"الرقم" في الرقم ذي العنوان الفردي، حيث ترتبط "المنطقة" بـ "ثقوب المنطقة" 12 و 11 و 0 كما هو الحال في سلسلة 1400. يتم تحويل أجهزة الترجمة المدخلة/المخرجة بين أزواج الأرقام الداخلية وأكواد BCD الخارجية القياسية المكونة من 6 بتات.

في بنية النظام العشري، يتم ترميز أبجديات IBM 7070 و IBM 7072 و IBM 7074 باستخدام أزواج الأرقام (باستخدام رمزين من أصل خمسة في الأرقام، وليس BCD) للكلمة المكونة من 10 أرقام، مع "المنطقة" في الرقم الأيسر و"الرقم" في الرقم الأيمن. يتم تحويل أجهزة الترجمة المدخلة/المخرجة بين أزواج الأرقام الداخلية ورموز BCD القياسية الخارجية المكونة من 6 بتات.

مع طرح System/360 ، قامت IBM بتوسيع أبجديات BCD ذات 6 بتات إلى EBCDIC ذات 8 بتات، مما يسمح بإضافة المزيد من الأحرف (على سبيل المثال، الأحرف الصغيرة). كما تم تنفيذ نوع بيانات رقمية BCD مضغوط بطول متغير ، مما يوفر تعليمات آلية تقوم بإجراء العمليات الحسابية مباشرة على البيانات العشرية المضغوطة.

في أجهزة IBM 1130 و 1800 ، يتم دعم BCD المعبأة في البرنامج بواسطة حزمة البرامج الفرعية التجارية الخاصة بشركة IBM.

اليوم، لا تزال بيانات BCD مستخدمة بكثافة في قواعد بيانات IBM مثل IBM Db2 والمعالجات مثل z/Architecture و POWER6 ومعالجات Power ISA الأحدث . في هذه المنتجات، عادةً ما يكون BCD عبارة عن 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] وسلسلة Motorola 68000 ، [46] وسلسلة x86 . [47] تدعم بنية Intel x86 تنسيق BCD فريدًا مكونًا من 18 رقمًا (عشرة بايتات) يمكن تحميله وتخزينه من سجلات الفاصلة العائمة، حيث يمكن إجراء العمليات الحسابية. [48]

في أجهزة الكمبيوتر الحديثة، يتم تنفيذ مثل هذه القدرات دائمًا تقريبًا في البرامج بدلاً من مجموعة تعليمات وحدة المعالجة المركزية، ولكن البيانات الرقمية BCD لا تزال شائعة للغاية في التطبيقات التجارية والمالية.

توجد حيل لتنفيذ عمليات الجمع أو الطرح العشرية المعبأة والمقسمة باستخدام تسلسلات قصيرة ولكن يصعب فهمها من المنطق المتوازي الكلمات والعمليات الحسابية الثنائية. [49] على سبيل المثال، يحسب الكود التالي (المكتوب بلغة C ) عملية جمع BCD معبأ غير موقعة مكونة من 8 أرقام باستخدام عمليات ثنائية مكونة من 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 // تصحيح العودة t1 - t2 ؛ // مجموع BCD المصحح }    
                           
                           
                          
                 
                
                       

BCD في الإلكترونيات

إن نظام BCD شائع الاستخدام في الأنظمة الإلكترونية حيث يتم عرض قيمة رقمية، وخاصة في الأنظمة التي تتكون فقط من المنطق الرقمي، ولا تحتوي على معالج دقيق. ومن خلال استخدام نظام BCD، يمكن تبسيط معالجة البيانات الرقمية للعرض بشكل كبير من خلال التعامل مع كل رقم كدائرة فرعية منفصلة.

وهذا يتطابق بشكل أوثق مع الواقع المادي لأجهزة العرض ــ فقد يختار المصمم استخدام سلسلة من شاشات العرض المتطابقة المنفصلة المكونة من سبعة أجزاء لبناء دائرة قياس، على سبيل المثال. وإذا تم تخزين الكمية الرقمية ومعالجتها على هيئة نظام ثنائي خالص، فإن التفاعل مع مثل هذا النظام يتطلب دوائر معقدة. وبالتالي، في الحالات التي تكون فيها الحسابات بسيطة نسبيا، فإن العمل باستخدام نظام الترميز الثنائي المبسط يمكن أن يؤدي إلى نظام أبسط عموما من التحويل من وإلى النظام الثنائي. وتجري معظم الآلات الحاسبة الجيبية كل حساباتها باستخدام نظام الترميز الثنائي المبسط المبسط.

تنطبق الحجة نفسها عندما تستخدم الأجهزة من هذا النوع متحكمًا دقيقًا مضمنًا أو معالجًا صغيرًا آخر. غالبًا ما يؤدي تمثيل الأرقام داخليًا بتنسيق BCD إلى كود أصغر، نظرًا لأن التحويل من أو إلى التمثيل الثنائي يمكن أن يكون مكلفًا على مثل هذه المعالجات المحدودة. لهذه التطبيقات، تتميز بعض المعالجات الصغيرة بأوضاع حسابية مخصصة، والتي تساعد عند كتابة الروتينات التي تعالج كميات BCD. [50] [51]

مقارنة مع النظام الثنائي الخالص

المزايا

  • القياس بقوة 10 أمر بسيط.
  • التقريب عند حدود الأرقام العشرية أسهل. الجمع والطرح في الأعداد العشرية لا يتطلبان التقريب. [ مشكوك فيهناقش ]
  • إن محاذاة رقمين عشريين (على سبيل المثال 1.3 + 27.08) عبارة عن تحول بسيط ودقيق.
  • إن التحويل إلى شكل حرفي أو للعرض (على سبيل المثال، إلى تنسيق نصي مثل XML ، أو لتشغيل الإشارات لعرض مكون من سبعة أجزاء ) هو تعيين بسيط لكل رقم، ويمكن إجراؤه في زمن خطي ( O ( n )). يتضمن التحويل من النظام الثنائي الخالص منطقًا معقدًا نسبيًا يمتد عبر الأرقام، وبالنسبة للأعداد الكبيرة، لا توجد خوارزمية تحويل في الزمن الخطي معروفة (انظر الرقم الثنائي § التحويل من وإلى أنظمة رقمية أخرى ).
  • العديد من القيم غير الصحيحة، مثل العدد العشري 0.2، لها تمثيل قيمة مكانية لا نهائية في النظام الثنائي (.001100110011...) ولكن لها قيمة مكانية محدودة في النظام العشري المشفر ثنائيًا (0.0010). وبالتالي، فإن النظام القائم على التمثيلات العشرية المشفرة ثنائيًا للكسور العشرية يتجنب الأخطاء في تمثيل وحساب مثل هذه القيم. وهذا مفيد في الحسابات المالية.

العيوب

  • إن التنفيذات العملية الحالية لـ BCD تكون أبطأ عادةً من العمليات على التمثيلات الثنائية، وخاصةً على الأنظمة المضمنة، وذلك بسبب دعم المعالج المحدود لعمليات BCD الأصلية. [52]
  • بعض العمليات أكثر تعقيدًا في التنفيذ. تتطلب أجهزة الجمع منطقًا إضافيًا لجعلها تلتف وتولد حملًا مبكرًا. أيضًا، هناك حاجة إلى 15 إلى 20 في المائة من الدوائر الإضافية لعملية إضافة BCD مقارنة بالثنائي الخالص. [ بحاجة لمصدر ] تتطلب الضرب استخدام خوارزميات أكثر تعقيدًا إلى حد ما من عملية إضافة shift-mask ( يتطلب الضرب الثنائي ، الذي يتطلب عمليات تحويل ثنائية وإضافة أو ما يعادلها، لكل رقم أو مجموعة من الأرقام).
  • تتطلب ترميز BCD القياسي أربعة بتات لكل رقم، أي ما يقرب من 20% مساحة أكبر من الترميز الثنائي (نسبة 4 بتات إلى لوغاريتم 2 10 بتات هي 1.204). وعند تعبئتها بحيث يتم ترميز ثلاثة أرقام في عشرة بتات، يتم تقليل تكلفة التخزين بشكل كبير، على حساب الترميز غير المتوافق مع حدود البايتات المكونة من 8 بتات الشائعة في الأجهزة الحالية، مما يؤدي إلى إبطاء التنفيذ على هذه الأنظمة.

الاختلافات التمثيلية

توجد تطبيقات مختلفة لـ BCD تستخدم تمثيلات أخرى للأرقام. تستخدم الآلات الحاسبة القابلة للبرمجة التي تصنعها Texas Instruments و Hewlett-Packard وغيرها عادةً تنسيق 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
# 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 من ثماني بتات n ترميز الرقم 2 n

بتات 4321 من ثماني بتات ترميز رقم 2 ( n – 1) + 1

المعنى هو الرقم 1234الذي سيصبح 21 43في TBCD.

يستخدم هذا التنسيق في الهواتف المحمولة الحديثة لإرسال الأرقام المطلوبة، بالإضافة إلى معرف المشغل (مجموعة MCC/MNC)، و IMEI ، وIMSI (SUPI)، وما إلى ذلك. [56] [57]

الترميزات البديلة

إذا كانت الأخطاء في التمثيل والحساب أكثر أهمية من سرعة التحويل من وإلى العرض، فيمكن استخدام تمثيل ثنائي مُدرج، والذي يخزن رقمًا عشريًا كعدد صحيح مُشفر ثنائيًا وأس عشري مُشار إليه مُشفر ثنائيًا. على سبيل المثال، يمكن تمثيل 0.2 على هيئة 2 × 10-1 .

يسمح هذا التمثيل بالضرب والقسمة السريعين، ولكنه قد يتطلب التحويل بقوة 10 أثناء الجمع والطرح لمحاذاة النقاط العشرية. وهو مناسب للتطبيقات التي تحتوي على عدد ثابت من الأماكن العشرية والتي لا تتطلب هذا التعديل - وخاصة التطبيقات المالية حيث يكفي عادةً رقمان أو أربعة أرقام بعد النقطة العشرية. والواقع أن هذا يشبه إلى حد كبير حساب النقطة الثابتة نظرًا لأن موضع النقطة الأساسية ضمني.

توفر ترميزات Hertz و Chen–Ho تحويلات منطقية لتحويل مجموعات من ثلاثة أرقام مشفرة بـ BCD من وإلى قيم 10 بتات [ nb 1] والتي يمكن ترميزها بكفاءة في الأجهزة مع تأخيرات بوابة 2 أو 3 فقط. يعد DPD ( العشري المعبأ بكثافة ) مخططًا مشابهًا [nb 1] يُستخدم لمعظم الأرقام المهمة ، باستثناء الرقم الرئيسي، لأحد ترميزات الأرقام العشرية البديلة المحددة في معيار الفاصلة العائمة IEEE 754-2008 .

طلب

يقوم BIOS في العديد من أجهزة الكمبيوتر الشخصية بتخزين التاريخ والوقت في BCD لأن شريحة الساعة MC6818 في الوقت الفعلي المستخدمة في اللوحة الأم الأصلية لجهاز IBM PC AT وفرت الوقت المشفر في BCD. يمكن تحويل هذا النموذج بسهولة إلى ASCII للعرض. [58] [59]

تستخدم أجهزة الكمبيوتر Atari 8-bit تنسيق BCD للأرقام ذات الفاصلة العائمة. يحتوي معالج MOS Technology 6502 على وضع BCD لتعليمات الجمع والطرح. يستخدم البرنامج الذي توفره الشركة المصنعة لجهاز الكمبيوتر المحمول Psion Organiser 1 أيضًا تنسيق BCD لتنفيذ الفاصلة العائمة؛ تستخدم طرز Psion اللاحقة نظام الأرقام الثنائية حصريًا.

تخزن النماذج المبكرة من جهاز PlayStation 3 التاريخ والوقت في نظام BCD. وقد أدى هذا إلى انقطاع الخدمة على مستوى العالم في الأول من مارس 2010. وقد تم تفسير الرقمين الأخيرين من العام المخزنين في نظام BCD بشكل خاطئ على أنهما 16، مما تسبب في حدوث خطأ في تاريخ الوحدة، مما أدى إلى تعطل معظم الوظائف. وقد تمت الإشارة إلى هذه المشكلة باسم مشكلة عام 2010 .

في قضية جوتشالك ضد بنسون عام 1972 ، ألغت المحكمة العليا الأمريكية قرار المحكمة الأدنى الذي سمح ببراءة اختراع لتحويل الأرقام المشفرة بنظام BCD إلى نظام ثنائي على جهاز كمبيوتر.

وقد أشار القرار إلى أن براءة الاختراع "ستسبق تمامًا الصيغة الرياضية وستكون في الواقع بمثابة براءة اختراع على الخوارزمية نفسها". [60] وكان هذا حكمًا تاريخيًا حدد قابلية الحصول على براءة اختراع للبرمجيات والخوارزميات .

انظر أيضا

ملحوظات

  1. ^ abc في التمثيل القياسي المعبأ المكون من 4 بتات، يوجد 16 حالة (أربعة بتات لكل رقم) مع 10 رباعيات و6 رباعيات زائفة ، بينما في المخططات المعبأة بكثافة أكبر مثل ترميزات هرتز أو تشن-هو أو دي بي دي يوجد عدد أقل - على سبيل المثال، 24 حالة غير مستخدمة فقط في 1024 حالة (10 بتات لثلاثة أرقام).
  2. ^ abcde تشير حالات الكود (الموضحة باللون الأسود) خارج النطاق العشري 0–9 إلى حالات إضافية للمتغير غير BCD للكود. في متغير كود BCD الذي تمت مناقشته هنا، فهي عبارة عن رباعيات زائفة.
  3. ^ رمز أيكين هو أحد رموز 2 4 2 1 العديدة. ويُعرف أيضًا باسم رمز 2* 4 2 1.
  4. ^ يُعرف رمز Jump-at-8 أيضًا باسم الرمز غير المتماثل 2 4 2 1.
  5. ^ يُعرف رمز Petherick أيضًا باسم رمز مؤسسة الطائرات الملكية (RAE).
  6. ^ يُعرف أيضًا رمز O'Brien من النوع الأول باسم رمز Watts أو رمز Watts المنعكس العشري (WRD).
  7. ^ يُعرف رمز Excess-3 Gray أيضًا باسم رمز GrayStibitz .
  8. ^ ab بطريقة مماثلة، غالبًا ما يتم ضغط العديد من الأحرف في كلمات آلية على أجهزة الكمبيوتر الصغيرة ، انظر IBM SQUOZE و DEC RADIX 50 .

مراجع

  1. ^ Intel. "ia32 architecture manual" (PDF) . Intel . مؤرشف من الأصل (PDF) في 2022-10-09 . تم الاسترجاع في 2015-07-01 .
  2. ^ أب كلار ، راينر (1970/02/01). "1.5.3 Konvertierung binär verschlüsselter Dezimalzahlen" [1.5.3 تحويل الأرقام العشرية المشفرة الثنائية]. Digitale Rechenautomaten – Eine Einführung [ أجهزة الكمبيوتر الرقمية – مقدمة ]. Sammlung Göschen (في المانيا). المجلد. 1241/1241أ (1 طبعة). برلين، ألمانيا: Walter de Gruyter & Co. / GJ Göschen'sche Verlagsbuchhandlung  [de] . ص 17، 21. ردمك 3-11-083160-0. . رقم الأرشيف 7990709. مؤرشف من الأصل في 2020-04-18 . تم الاسترجاع 2020-04-13 .( 205 صفحة) (ملاحظة: تتوفر طبعة جديدة من الطبعة الأولى عام 2019 تحت رقم ISBN 3-11002793-3 و978-3-11002793-8 . كما توجد طبعة رابعة منقحة وموسعة.) 
  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 (الطبعة الرابعة المعاد صياغتها). برلين، ألمانيا: والتر دي جرويتر وشركاه . الصفحات 25، 28، 38-39. رقم ISBN 3-11011700-2. ص. 25: […] Die nicht erlaubten 0/1-Muster nennt man auch Pseudodezimalen. […](320 صفحة)
  4. ^ شنايدر ، هانز يوخن (1986). Lexikon der Informatik und Datenverarbeitung (باللغة الألمانية) (2 ed.). ر. أولدنبورغ فيرلاغ ميونيخ فيينا. رقم ISBN 3-486-22662-2.
  5. ^ تافيل، هانز يورغ (1971). Einführung in die digitale Datenverarbeitung [ مقدمة لمعالجة المعلومات الرقمية ] (باللغة الألمانية). ميونيخ: دار نشر كارل هانسر . رقم ISBN 3-446-10569-7.
  6. ^ ستينبوخ، كارل دبليو . ويبر، وولفغانغ. هاينمان، تراوت، محرران. (1974) [1967]. Taschenbuch der Informatik - Band II - هيكل وبرمجة نظام EDV . Taschenbuch der Nachrichtenverarbeitung (باللغة الألمانية). المجلد. 2 (3 طبعة). برلين، ألمانيا: سبرينغر-فيرلاغ . رقم ISBN 3-540-06241-6. LCCN  73-80607.
  7. ^ تيتز ، أولريش. شينك ، كريستوف (2012/12/06). الدوائر الإلكترونية المتقدمة. سبرينغر للعلوم والإعلام التجاري . رقم ISBN 978-3642812415. 9783642812415 . تم الاسترجاع في 2015-08-05 .
  8. ^ Kowalski, Emil (2013-03-08) [1970]. Nuclear Electronics. Springer-Verlag . doi :10.1007/978-3-642-87663-9. ISBN 978-3642876639. 9783642876639، 978-3-642-87664-6 . تم الاسترجاع في 2015-08-05 .
  9. ^ فيريتي ، فيتوريو (13/03/2013). Wörterbuch der Elektronik, Datentechnik und Telekommunikation / قاموس الإلكترونيات والحوسبة والاتصالات السلكية واللاسلكية: الجزء 1: الألمانية-الإنجليزية / الجزء 1: الألمانية-الإنجليزية. المجلد. 1 (2 طبعة). سبرينغر-فيرلاغ. رقم ISBN 978-3642980886. 9783642980886 . تم الاسترجاع في 2015-08-05 .
  10. ^ سبايزر، أمبروسيوس بول (1965) [1961]. Digitale Rechenanlagen - Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit [ أجهزة الكمبيوتر الرقمية - الأساسيات / الدوائر / التشغيل / الموثوقية ] (باللغة الألمانية) (2 ed.). ETH زيورخ ، زيورخ، سويسرا: Springer-Verlag / IBM . ص. 209. إل سي سي إن  65-14624. 0978.
  11. ^ Cowlishaw, Mike F. (2015) [1981, 2008]. "الحساب العشري العام" . تم الاسترجاع في 2016-01-02 .
  12. ^ إيفانز، ديفيد سيلفستر (مارس 1961). "الفصل الرابع: المعدات المساعدة: مرحلات التحكم في الإخراج والتحقق من التكافؤ للمحولات الرقمية". البيانات الرقمية: اشتقاقها واختزالها للتحليل والتحكم في العملية (طبعة واحدة). لندن، المملكة المتحدة: هيلجر وواتس المحدودة / دار نشر إنترساينس . ص 46-64 [56-57] . تم الاسترجاع في 2020-05-24 .(8+82 صفحة) (ملاحظة: يُعرف أيضًا رمز 8421 BCD المكون من 4 بتات مع بت تكافؤ إضافي يتم تطبيقه باعتباره البت الأقل أهمية لتحقيق التكافؤ الفردي للكود الناتج المكون من 5 بتات باسم رمز Ferranti .)
  13. ^ لالا، باراج ك. (2007). مبادئ التصميم الرقمي الحديث. جون وايلي وأولاده . ص 20-25. ISBN 978-0-470-07296-7.
  14. ^ abcdefghijklmn بيرغر، إريك ر. (1962). "1.3.3. Die Codierung von Zahlen". كتبت في كارلسروه، ألمانيا. في ستينبوخ، كارل دبليو (محرر). Taschenbuch der Nachrichtenverarbeitung (باللغة الألمانية) (1 ed.). برلين / غوتنغن / نيويورك: Springer-Verlag OHG . ص 68-75. إل سي سي إن  62-14511.(ملاحظة: إن رمز Kautz الموضح (II)، والذي يحتوي على جميع الحالات الثنائية الثماني المتاحة مع عدد فردي من 1، هو تعديل طفيف لرمز Kautz الأصلي (I)، والذي يحتوي على جميع الحالات الثماني مع عدد زوجي من 1، بحيث يؤدي عكس البتات الأكثر أهمية إلى إنشاء مكمل 9. )
  15. ^ abcdef Kämmerer، Wilhelm [بالألمانية] (مايو 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.)
  16. ^ abcdefghijklmnopq دوكتر، فولكرت؛ شتاينهاور ، يورغن (18/06/1973). الالكترونيات الرقمية. مكتبة فيليبس التقنية (PTL) / تعليم ماكميلان (إعادة طباعة الطبعة الإنجليزية الأولى). أيندهوفن، هولندا: The Macmillan Press Ltd. / NV Philips 'Gloeilampenfabrieken . دوى :10.1007/978-1-349-01417-0. رقم ISBN 978-1-349-01419-4. رقم الصنف 333-13360-9. تم أرشفة النسخة الأصلية في 2020-07-16 . تم استرجاعها في 2020-05-11 .(270 صفحة) (ملاحظة: هذا يعتمد على ترجمة المجلد الأول من الطبعة الألمانية المكونة من مجلدين.)
  17. ^ abcdefghijklmnopq دوكتر، فولكرت؛ شتاينهاور، يورغن (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.)
  18. ^ abcdef Kautz, William H. (June 1954). "IV. Examples A. Binary Codes for Decimals, n = 4". Optimized Data Encoding for Digital Computers. Convention Record of the IRE, 1954 National Convention, Part 4 - Electronic Computers and Information Theory. Session 19: Information Theory III - Speed ​​and Computation. Stanford Research Institute, Stanford, California, USA: IRE pp. 47–57 [49, 51–52, 57]. مؤرشف من الأصل في 2020-07-03 . تم الاسترجاع 2020-07-03 . ص. 52: […] العمود الأخير [من الجدول الثاني]، المسمى "الأفضل"، يعطي أقصى كسر ممكن مع أي رمز - أي 0.60 - أفضل بنصف مرة أخرى من أي رمز تقليدي. يتم الوصول إلى هذا الحد الأقصى من خلال الرؤوس العشرة ذات العلامات الكثيفة في الرسم البياني في الشكل 4 لـ n = 4، أو في الواقع، مع أي مجموعة من عشر مجموعات رموز تتضمن جميع الثمانية مع عدد زوجي (أو جميع الثمانية مع عدد فردي) من "1". يسرد الصفان الثاني والثالث من الجدول الثاني متوسط ​​التغير العشري والذروة لكل خطأ ثنائي فردي غير مكتشف، وقد تم استنباطهما باستخدام معادلات القسم الثاني لـ Δ 1 و δ 1. يتم أخذ مؤشر الارتباك للأرقام العشرية باستخدام معيار "التغير العشري" ليكون c ij = |i − j| i,j = 0, 1, … 9. مرة أخرى، فإن "أفضل" ترتيب ممكن (نفس الشيء بالنسبة للمتوسط ​​والذروة)، والذي يظهر أحده في الشكل 4، أفضل بكثير من الرموز التقليدية. […] الشكل 4 رمز الحد الأدنى للارتباك للأرقام العشرية. […] δ 1 =2 Δ 1 =15 […][1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] (11 صفحة) (ملاحظة: بالإضافة إلى المجموعة التركيبية من "أكواد الارتباك الأدنى للأرقام العشرية" المكونة من 4 بتات، والتي يوضح المؤلف منها واحدًا فقط صراحةً (مُعاد إنتاجه هنا باسم الكود I) في شكل رسم بياني مكون من 4 بتات، يُظهر المؤلف أيضًا "كودًا ثنائيًا للبيانات التناظرية" مكونًا من 16 حالة و4 بتات في شكل جدول أكواد، والذي، مع ذلك، لا تتم مناقشته هنا. الكود II الموضح هنا هو تعديل للكود الذي ناقشته بواسطة بيرجر.)
  19. ^ abc Chinal, Jean P. (January 1973). "Codes". Written at Paris, France. Design Methods for Digital Systems. Translated by Preston, Alan; Summer, Arthur (1st English ed.). Berlin, Germany: Akademie-Verlag / Springer-Verlag . p. 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 . تم الاسترجاع في 2020-06-21 .(xviii+506 صفحة) (ملحوظة: الكتاب الأصلي الفرنسي لعام 1967 كان يحمل اسم "Techniques Booléennes et Calculateurs Arithmétiques"، الذي نشرته Éditions Dunod  [fr] .)
  20. ^ دليل عسكري: أجهزة ترميز - زاوية العمود إلى رقمية (PDF) . وزارة الدفاع الأمريكية . 1991-09-30. MIL-HDBK-231A. مؤرشف (PDF) من الأصل في 2020-07-25 . تم الاسترجاع في 2020-07-25 .(ملاحظة: يحل محل MIL-HDBK-231(AS) (1970-07-01).)
  21. ^ أب سدادة ، هربرت (مارس 1960). كتب في Litzelstetten، ألمانيا. رونج ، فيلهلم تولمي (محرر). ""إنشاء رموز ومعلومات Schaltung einer Zähldekade"." Telefunken-Zeitung (TZ) - Technisch-Wissenschaftliche Mitteilungen der Telefunken GMBH (باللغة الألمانية). 33 (127). برلين، ألمانيا: تليفونكن : 13-19.(7 صفحات)
  22. ^ أب بوروكي ، لورينز. ديتمان، يواكيم (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-2. إل سي سي إن  75-131547. ردمك 978-3-642-80561-5 . (viii+252 صفحة) الطبعة الأولى
  23. ^ وايت، جارلاند س. (أكتوبر 1953). "أنظمة الأرقام العشرية المشفرة لأجهزة الكمبيوتر الرقمية". وقائع معهد مهندسي الراديو . 41 (10). معهد مهندسي الراديو (IRE): 1450-1452. doi :10.1109/JRPROC.1953.274330. eISSN  2162-6634. ISSN  0096-8390. S2CID  51674710.(3 صفحات)
  24. ^ "أنواع مختلفة من الرموز الثنائية". المركز الإلكتروني . 2019-05-01 [2015-01-28]. القسم 2.4 رمز 5211. مؤرشف من الأصل في 2020-05-18 . تم الاسترجاع في 2020-08-04 .
  25. ^ بول ماتياس ر. (10/08/1995) [1994]. "Unterbrechungsfreier Schleifencode" [رمز الحلقة المستمرة]. 1.02 (باللغة الألمانية) . تم الاسترجاع 2008-02-11 .(ملاحظة: أطلق المؤلف على هذا الكود اسم Schleifencode (بالإنجليزية: "كود الحلقة"). وهو يختلف عن كود Gray BCD فقط في ترميز الحالة 0 لجعله كودًا دوريًا لوحدة المسافة لتطبيقات حلقات الانزلاق الدوارة ذات الدائرة الكاملة . إن تجنب نمط الكود الصفري بالكامل يسمح باختبار ذاتي للحلقة واستخدام خطوط البيانات لتوزيع الطاقة دون انقطاع.)
  26. ^ جراي، فرانك (1953-03-17) [1947-11-13]. Pulse Code Communication (PDF) . نيويورك، الولايات المتحدة الأمريكية: مختبرات بيل للهاتف، المحدودة . براءة اختراع أمريكية رقم 2,632,058 . الرقم التسلسلي 785697. مؤرشف (PDF) من الأصل في 2020-08-05 . تم الاسترجاع في 2020-08-05 .(13 صفحة)
  27. ^ جليكسون، هاري روبرت (مارس 1957). "هل يمكنك الاستفادة من الكود الدوري الثنائي العشري؟". هندسة التحكم . 4 (3). شركة النشر الفني ، قسم من شركة دون دونيلي للنشر، شركة دون آند برادستريت : 87-91. ISSN  0010-8049.(5 صفحات)
  28. ^ ab Ledley, Robert Steven ; Rotolo, Louis S.; Wilson, James Bruce (1960). "Part 4. Logical Design of Digital-Computer Circuitry; Chapter 15. Serial Arithmetic Operations; Chapter 15-7. Further Topics". Digital Computer and Control Engineering (PDF) . سلسلة ماكجرو هيل للهندسة الكهربائية والإلكترونية (طبعة واحدة). نيويورك، الولايات المتحدة الأمريكية: شركة ماكجرو هيل للكتب (الطابعة: شركة مابل برس، يورك، بنسلفانيا، الولايات المتحدة الأمريكية). ص 517-518. ISBN 0-07036981-X. ISSN  2574-7916. LCCN  59015055. OCLC  1033638267. OL  5776493M. إس بي إن 07036981-X. . ark:/13960/t72v3b312. مؤرشف (PDF) من الأصل في 2021-02-19 . تم الاسترجاع 2021-02-19 . ص. 517: […] الكود الدوري مفيد بشكل أساسي في استخدام دوائر التتابع، حيث لن يعطي التتابع اللاصق حالة خاطئة لأنه يتأخر في الانتقال من رقم دوري إلى التالي. هناك العديد من الأكواد الدورية الأخرى التي تتمتع بهذه الخاصية. […][12] (xxiv+835+1 صفحة) (ملاحظة: صنف ليدلي الكود الدوري الموصوف على أنه كود ثنائي مشفر بنظام عشري دوري .)
  29. ^ abcd Savard, John JG (2018) [2006]. "Decimal Representations". quadibloc . مؤرشف من الأصل في 2018-07-16 . تم الاسترجاع في 2018-07-16 .
  30. ^ Petherick, Edward John (أكتوبر 1953). نظام تمثيل الأرقام الدوري المشفر بالترميز الثنائي العشري (المذكرة الفنية MS15). فارنبورو، المملكة المتحدة: مؤسسة الطائرات الملكية (RAE).(4 صفحات) (ملاحظة: يُشار إليه أحيانًا باسم نظام تمثيل الأرقام المرمز دوريًا والمرمز ثنائيًا والعشري .)
  31. ^ Petherick, Edward John; Hopkins, AJ (1958). بعض الأجهزة الرقمية المطورة حديثًا لتشفير دوران الأعمدة (المذكرة الفنية MS21). فارنبورو، المملكة المتحدة: مؤسسة الطائرات الملكية (RAE).
  32. ^ ab O'Brien, Joseph A. (May 1956) [1955-11-15, 1955-06-23]. "الرموز العشرية الدورية للمحولات التناظرية إلى الرقمية". معاملات المعهد الأمريكي للمهندسين الكهربائيين، الجزء الأول: الاتصالات والإلكترونيات . 75 (2). مختبرات بيل للهاتف، ويباني، نيو جيرسي، الولايات المتحدة الأمريكية: 120-122. doi :10.1109/TCE.1956.6372498. ISSN  0097-2452. S2CID  51657314. الورقة 56-21. مؤرشفة من الأصل في 2020-05-18 . تم الاسترجاع في 2020-05-18 .(3 صفحات) (ملاحظة: تم إعداد هذه الورقة لتقديمها في الاجتماع العام الشتوي للـAIEE، نيويورك، الولايات المتحدة الأمريكية، من 30 يناير 1956 إلى 3 فبراير 1956.)
  33. ^ ab Tompkins, Howard E. (September 1956) [1956-07-16]. "رموز ثنائية عشرية بمسافة الوحدة للتبديل ثنائي المسار". معاملات IRE في أجهزة الكمبيوتر الإلكترونية . المراسلات. EC-5 (3). كلية مور للهندسة الكهربائية ، جامعة بنسلفانيا ، فيلادلفيا، بنسلفانيا، الولايات المتحدة الأمريكية: 139. doi :10.1109/TEC.1956.5219934. ISSN  0367-9950. مؤرشف من الأصل في 2020-05-18 . تم الاسترجاع في 2020-05-18 .(1 صفحة)
  34. ^ Lippel, Bernhard (ديسمبر 1955). "A Decimal Code for Analog-to-Digital Conversion". IRE Transactions on Electronic Computers . EC-4 (4): 158–159. doi :10.1109/TEC.1955.5219487. ISSN  0367-9950.(صفحتين)
  35. ^ abc Susskind, Alfred Kriss; Ward, John Erwin (1958-03-28) [1957, 1956]. "III.F. Unit-Distance Codes / VI.E.2. Reflected Binary Codes". كُتب في كامبريدج، ماساتشوستس، الولايات المتحدة الأمريكية. في Susskind, Alfred Kriss (محرر). ملاحظات حول تقنيات التحويل التناظري الرقمي . كتب التكنولوجيا في العلوم والهندسة. المجلد 1 (الطبعة الثالثة). نيويورك، الولايات المتحدة الأمريكية: مطبعة تكنولوجيا معهد ماساتشوستس للتكنولوجيا / جون وايلي وأولاده، المحدودة / تشابمان وهول المحدودة. ص 3-7-3-8 [3-7]، 3-10-3-16 [3-13-3-16]، 6-65-6-60 [6-60].(x+416+2 صفحة) (ملاحظة: تم إعداد محتويات الكتاب في الأصل من قبل أعضاء هيئة التدريس في مختبر آليات التحكم ، قسم الهندسة الكهربائية، معهد ماساتشوستس للتكنولوجيا ، للبرامج الصيفية الخاصة التي عقدت في عامي 1956 و1957. يظهر الكود الذي قدمه سوسكيند في عمله على أنه "كود من نوع القراءة" هنا على أنه كود من النوع الثاني، في حين أن كود النوع الأول هو اشتقاق ثانوي مع تبديل عمودي البت الأكثر أهمية لتوضيح التناظرات بشكل أفضل.)
  36. ^ ab Yuen, Chun-Kwong (ديسمبر 1977). "تمثيل جديد للأرقام العشرية". IEEE Transactions on Computers . C-26 (12): 1286–1288. doi :10.1109/TC.1977.1674792. S2CID  40879271. مؤرشف من الأصل في 2020-08-08 . تم الاسترجاع في 2020-08-08 .
  37. ^ لوكال، هارولد م. (ديسمبر 1959). "العمليات الحسابية لأجهزة الكمبيوتر الرقمية باستخدام نظام ثنائي منعكس معدّل". معاملات IRE لأجهزة الكمبيوتر الإلكترونية . EC-8 (4): 449–458. doi :10.1109/TEC.1959.5222057. ISSN  0367-9950. S2CID  206673385.(10 صفحات)
  38. ^ ديوار، روبرت بيريديل كيث ؛ سموسنا، ماثيو (1990). المعالجات الدقيقة - وجهة نظر المبرمج (طبعة واحدة). معهد كورانت ، جامعة نيويورك ، نيويورك، الولايات المتحدة الأمريكية: شركة ماكجرو هيل للنشر . ص. 14. رقم ISBN 0-07-016638-2. LCCN  89-77320.(xviii+462 صفحة)
  39. ^ "الفصل 8: التعليمات العشرية". مبادئ تشغيل نظام IBM/370 . IBM . مارس 1980.
  40. ^ "الفصل 3: تمثيل البيانات". دليل هندسة PDP-11 . شركة Digital Equipment Corporation . 1983.
  41. ^ ab VAX-11 Architecture Handbook . شركة المعدات الرقمية . 1985.
  42. ^ "مرجع ILE RPG".
  43. ^ "مخطط رموز الأحرف IBM 1401/1440/1460/1410/7010 حسب ترتيب BCD" (PDF) .
  44. ^ "مجموعة التعليمات 6502". مؤرشف من الأصل في 2018-05-08.
  45. ^ "NMOS 6502 Opcodes". مؤرشف من الأصل في 2016-01-14.
  46. ^ "مجموعة تعليمات 68000" (PDF) . مؤرشف من الأصل (PDF) في 2023-11-20 . تم الاسترجاع 2023-11-21 .(58 صفحة)
  47. ^ دليل مطوري برامج Intel 64 وIA-32 Architectures المجلد 1: البنية الأساسية (PDF) . Intel. مارس 2013. القسم 4.7. مؤرشف من الأصل (PDF) في 2013-04-02 . تم الاسترجاع في 2013-04-23 .
  48. ^ "4.7 BCD والأعداد الصحيحة المعبأة BCD". دليل مطوري برامج Intel 64 وIA-32 Architectures، المجلد 1: البنية الأساسية (PDF) . الإصدار 072. المجلد 1. Intel Corporation . 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 في سجلات بيانات FPU x87 ، يتم تعبئة قيم BCD بتنسيق 80 بت ويشار إليها بالأعداد الصحيحة العشرية. في هذا التنسيق، تحتوي أول 9 بايتات على 18 رقم BCD، رقمين لكل بايت. الرقم الأقل أهمية موجود في النصف السفلي من البايت 0 والرقم الأكثر أهمية موجود في النصف العلوي من البايت 9. يحتوي البت الأكثر أهمية في البايت 10 على بت الإشارة (0 = موجب و1 = سالب؛ البتات من 0 إلى 6 من البايت 10 هي بتات لا تهم ). لا يتم تخزين الأعداد الصحيحة العشرية السالبة في شكل مكمل اثنين ؛ يتم تمييزها عن الأعداد الصحيحة العشرية الموجبة فقط من خلال بت الإشارة. نطاق الأعداد الصحيحة العشرية التي يمكن ترميزها بهذا التنسيق هو −10 18 + 1 إلى 10 18 − 1. يوجد تنسيق الأعداد الصحيحة العشرية في الذاكرة فقط. عند تحميل عدد صحيح عشري في سجل بيانات FPU x87، يتم تحويله تلقائيًا إلى تنسيق الفاصلة العائمة ذات الدقة المزدوجة الممتدة . يمكن تمثيل جميع الأعداد الصحيحة العشرية بدقة في صيغة الدقة الممتدة المزدوجة. […] [13]
  49. ^ جونز، دوغلاس دبليو. (2015-11-25) [1999]. "حسابات BCD، برنامج تعليمي". دروس حسابية . آيوا سيتي، آيوا، الولايات المتحدة الأمريكية: جامعة آيوا ، قسم علوم الكمبيوتر . تم الاسترجاع في 2016-01-03 .
  50. ^ جامعة أليكانتي. "هندسة قائمة على كورديك لحسابات عشرية عالية الأداء" (PDF) . IEEE . مؤرشف من الأصل (PDF) في 2010-01-05 . تم الاسترجاع في 2015-08-15 .
  51. ^ "Decimal CORDIC Rotation based on Selection by Rounding: Algorithm and Architecture" (PDF) . British Computer Society . مؤرشف من الأصل (PDF) في 2022-10-09 . تم الاسترجاع في 2015-08-14 .
  52. ^ Mathur, Aditya P. (1989). Introduction to Microprocessors (3 ed.). Tata McGraw-Hill Publishing Company Limited . ISBN 978-0-07-460222-5.
  53. ^ 3GPP TS 29.002: مواصفات جزء التطبيق المحمول (MAP) (تقرير فني). 2013. القسم 17.7.8 أنواع البيانات الشائعة.
  54. ^ "بروتوكولات الإشارة والتبديل (SPS) إرشادات لاستخدام تدوين النحو المجرد الأول (ASN.1) في بروتوكولات تطبيقات الاتصالات" (PDF) . ص. 15. مؤرشف من الأصل (PDF) في 2013-12-04.
  55. ^ "XOM Mobile Application Part (XMAP) Specification" (PDF) . ص. 93. مؤرشف من الأصل (PDF) في 2015-02-21 . تم الاسترجاع في 2013-06-27 .
  56. ^ "بروتوكول طبقة عدم الوصول (NAS) لنظام 5G (5GS)؛ المرحلة 3. (3GPP TS 24.501 الإصدار 16.10.0 الإصدار 16) TS 24.501 الإصدار 16.10.0" (PDF) . ETSI و 3GPP . مؤرشف (PDF) من الأصل في 2022-02-17 . تم الاسترجاع في 2022-02-26 .(TS 24.501)
  57. ^ "نظام الاتصالات الخلوية الرقمية (المرحلة 2+) (GSM)؛ نظام الاتصالات المتنقلة العالمي (UMTS)؛ LTE؛ 5G؛ الترقيم والتوجيه والتحديد (3GPP TS 23.003 الإصدار 16.8.0 الإصدار 16)" (PDF) . ETSI و 3GPP . مؤرشف (PDF) من الأصل في 2022-02-26 . تم الاسترجاع 2022-02-26 .(TS 23.003)
  58. ^ "دوائر عداد الوقت في جهاز كمبيوتر IBM" (PDF) . www.se.ecu.edu.au . مؤرشف من الأصل (PDF) في 2008-10-10 . تم الاسترجاع في 2022-05-22 .(7 صفحات)
  59. ^ ورقة بيانات MC6818
  60. ^ Gottschalk v. Benson ، 409 U.S. 63، 72 (1972).

قراءة إضافية

  • ماكنزي، تشارلز إي. (1980). مجموعات الأحرف المشفرة، التاريخ والتطوير (PDF) . سلسلة برمجة الأنظمة (طبعة واحدة). شركة أديسون ويسلي للنشر، رقم ISBN 978-0-201-14460-4. LCCN  77-90165. مؤرشف من الأصل (PDF) في 26 مايو 2016. تم الاسترجاع في 25 أغسطس 2019 .
  • ريتشاردز، ريتشارد كولر (1955). العمليات الحسابية في الحاسبات الرقمية . نيويورك، الولايات المتحدة الأمريكية: فان نوستراند . ص 397-.
  • شميد، هيرمان (1974). الحساب العشري (الطبعة الأولى). بينجهامبتون، نيويورك، الولايات المتحدة الأمريكية: جون وايلي وأولاده . رقم ISBN 0-471-76180-X.وشميد ، هيرمان (1983) [1974]. الحساب العشري (طبعة 1 (إعادة طبع)). مالابار، فلوريدا، الولايات المتحدة الأمريكية: شركة روبرت إي. كريجر للنشر. رقم ISBN 0-89874-318-4.(ملاحظة: على الأقل بعض الدفعات من طبعة كريجر المعاد طباعتها كانت عبارة عن أخطاء مطبعية مع وجود عيوب في الصفحات من 115 إلى 146.)
  • Massalin, Henry (أكتوبر 1987). Katz, Randy (محرر). "Superoptimizer: نظرة على أصغر برنامج" (PDF) . ACM SIGOPS Operating Systems Review . 21 (4): 122–126. doi :10.1145/36204.36194. ISBN 0-8186-0805-6. مؤرشف من الأصل (PDF) في 2017-07-04 . تم الاسترجاع في 2012-04-25 .(أيضًا: إشعارات ACM SIGPLAN، المجلد 22، العدد 10، IEEE Computer Society Press، العدد 87CH2440-6، أكتوبر 1987)
    • "GNU Superoptimizer". HP-UX .
  • شيرازي، بهروز؛ يون، ديفيد واي واي؛ تشانج، تشانج إن. (مارس 1988). تصميمات VLSI للجمع العشري المشفر ثنائيًا . مؤتمر فينيكس الدولي السنوي السابع لمعهد مهندسي الكهرباء والإلكترونيات حول الحاسبات والاتصالات، 1988. معهد مهندسي الكهرباء والإلكترونيات . ص 52-56.
  • براون؛ فرانيسيتش (2003). أساسيات المنطق الرقمي .
  • Thapliyal, Himanshu; Arabnia, Hamid R. (نوفمبر 2006). Modified Carry Look Ahead BCD Adder With CMOS and Reversible Logic Implementation . Proceedings of the 2006 International Conference on Computer Design (CDES'06). CSREA Press. ص 64-69. ISBN 1-60132-009-4.
  • كايفاني، أ.؛ الحسيني، أ. زاكر؛ جورجين، س.؛ فازلاي، م. (ديسمبر 2006). التنفيذ العكسي لمحول النظام العشري المعبأ بكثافة من وإلى تنسيق النظام العشري المشفر ثنائيًا باستخدام IEEE-754R . المؤتمر الدولي التاسع لتكنولوجيا المعلومات (ICIT'06). IEEE . ص 273-276.
  • Cowlishaw, Mike F. (2009) [2002, 2008]. "قائمة المواد الخاصة بالحساب العشري – حسب الفئة". الحساب العشري العام . IBM . تم الاسترجاع في 2016-01-02 .
  • Cowlishaw, Mike F. (2014) [2000]. "ملخص ترميز بيانات Chen-Ho العشرية". الحساب العشري العام . IBM . تم الاسترجاع في 2016-01-02 .
  • Cowlishaw, Mike F. (2007) [2000]. "ملخص الترميز العشري المعبأ بكثافة". الحساب العشري العام . IBM . تم الاسترجاع في 2016-01-02 .
  • تحويل BCD إلى نظام عشري وثنائي وسداسي عشري والعكس
  • BCD لجافا
Retrieved from "https://en.wikipedia.org/w/index.php?title=Binary-coded_decimal&oldid=1248415907"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate