बाइनरी-कोडित दशमलव: Difference between revisions
No edit summary |
No edit summary |
||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|System of digitally encoding numbers}} | {{Short description|System of digitally encoding numbers}} | ||
कम्प्यूटिंग और इलेक्ट्रानिक्स प्रणाली में, '''बाइनरी-कोडेड [[दशमलव]]''' (बीसीडी) दशमलव संख्या के बाइनरी अंक प्रणाली एन्कोडिंग का वर्ग है जहां प्रत्येक [[संख्यात्मक अंक]] को निश्चित संख्या सामान्यतः 4 या 8 में [[अंश|बिट्स]] द्वारा दर्शाया जाता है। कभी-कभी, चिन्ह (गणित) या अन्य संकेतों (जैसे त्रुटि या अतिप्रवाह) के लिए विशेष बिट पैटर्न का उपयोग किया जाता है। | |||
[[बाइट]]-ओरिएंटेड प्रणाली ( | [[बाइट]]-ओरिएंटेड प्रणाली (अर्थात् अधिकांश आधुनिक कंप्यूटर) में, 'अनपैक्ड' बीसीडी शब्द<ref name="Intel_IA32"/> सामान्यतः प्रत्येक अंक के लिए पूर्ण बाइट का अर्थ होता है (अधिकांश संकेत सहित), जबकि पैक्ड बीसीडी सामान्यतः इस तथ्य का लाभ उठाते हुए बाइट के अन्दर दो अंकों को एनकोड करता है कि चार बिट 0 से 9 की सीमा का प्रतिनिधित्व करने के लिए पर्याप्त हैं। चूँकि, त्रुटिहीन 4-बिट एन्कोडिंग तकनीकी कारणों से भिन्न हो सकती है (उदाहरण के लिए [[अतिरिक्त -3]])। | ||
बीसीडी अंक का प्रतिनिधित्व करने वाले दस राज्यों को कभी-कभी टेट्राड (कंप्यूटिंग) कहा जाता है<ref name="Klar_1970"/><ref name="Klar_1989"/> ( | बीसीडी अंक का प्रतिनिधित्व करने वाले दस राज्यों को कभी-कभी टेट्राड (कंप्यूटिंग) कहा जाता है<ref name="Klar_1970"/><ref name="Klar_1989"/> (सामान्यतः उन्हें पकड़ने के लिए आवश्यक कुतरने के लिए टेट्राड के रूप में भी जाना जाता है) जबकि अप्रयुक्त, देखभाल न करें-राज्यों को {{Interlanguage link multi|छद्म चतुष्कोणीय|de|3=छद्म व्यापार|lt=''छद्म-चतुर्भुज(ई)एस''}},<ref name="Schneider_1986"/><ref name="Tafel_1971"/><ref name="Steinbuch-Weber-Heinemann_1974"/><ref name="Tietze-Schenk_2013"/><ref name="Kowalski_1070"/> छद्म दशमलव<ref name="Klar_1989"/> या छद्म दशमलव अंक नाम दिए गए हैं।<ref name="Ferretti_2013"/><ref name="Speiser_1965"/><ref group="nb" name="Pseudo-tetrades"/> | ||
बीसीडी का मुख्य गुण, बाइनरी [[स्थितीय प्रणाली]] की तुलना में, इसका अधिक | बीसीडी का मुख्य गुण, बाइनरी [[स्थितीय प्रणाली]] की तुलना में, इसका अधिक त्रुटिहीन प्रतिनिधित्व और दशमलव मात्रा का गोलाई है, साथ ही पारंपरिक मानव-पठनीय प्रतिनिधित्व में रूपांतरण में आसानी है। मूलभूत अंकगणित के साथ-साथ थोड़ा कम सघन भंडारण को प्रायुक्त करने के लिए आवश्यक सर्किट की जटिलता में इसकी प्रमुख कमियां हैं। | ||
बीसीडी का उपयोग कई | बीसीडी का उपयोग कई प्रारंभिक [[दशमलव कंप्यूटर|दशमलव कंप्यूटरों]] में किया गया था, और इसे आईबीएम प्रणाली/360 श्रृंखला और इसके वंशजों, [[डिजिटल उपकरण निगम]] के [[VAX|वैक्स]], द [[बरोज़ B1700|बरोज़ बी1700]] और मोटोरोला [[68000]]-श्रृंखला प्रोसेसर जैसी मशीनों के निर्देश सेट में प्रायुक्त किया गया है। बीसीडी अपने आप में पहले की तरह व्यापक रूप से उपयोग नहीं किया जाता है, और नए निर्देश सेटों में अनुपलब्ध या सीमित है (उदाहरण के लिए, [[एआरएम वास्तुकला परिवार]]; लंबे मोड में x[[86]])। चूँकि, दशमलव [[फिक्स्ड-पॉइंट अंकगणित]] और दशमलव [[तैरनेवाला स्थल|फ़्लोटिंग-पॉइंट]] प्रारूप अभी भी महत्वपूर्ण हैं और वित्तीय, वाणिज्यिक और औद्योगिक कंप्यूटिंग में उपयोग किए जाते हैं, जहाँ बाइनरी फ़्लोटिंग में सूक्ष्म रूपांतरण और आंशिक राउंड-ऑफ़ त्रुटि निहित है। बिंदु स्वरूपों को बर्दाश्त नहीं किया जा सकता है।<ref name="Cowlishaw_GDA"/> | ||
==पृष्ठभूमि == | ==पृष्ठभूमि == | ||
बीसीडी इस तथ्य का लाभ उठाता है कि किसी | बीसीडी इस तथ्य का लाभ उठाता है कि किसी दशमलव अंक को चार-बिट पैटर्न द्वारा दर्शाया जा सकता है। अंकों को एनकोड करने का सबसे स्पष्ट विधि प्राकृतिक बीसीडी (एनबीसीडी) है, जहां प्रत्येक दशमलव अंक को इसके संबंधित चार-बिट बाइनरी मान द्वारा दर्शाया जाता है, जैसा कि निम्न तालिका में दिखाया गया है। इसे 8421 एन्कोडिंग भी कहा जाता है। | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
Line 45: | Line 44: | ||
| 9 || 1 || 0 || 0 || 1 | | 9 || 1 || 0 || 0 || 1 | ||
|} | |} | ||
इस योजना को साधारण बाइनरी-कोडेड दशमलव (एसबीसीडी) या बीसीडी 8421 के रूप में भी संदर्भित किया जा सकता है, और यह सबसे | इस योजना को साधारण बाइनरी-कोडेड दशमलव (एसबीसीडी) या बीसीडी 8421 के रूप में भी संदर्भित किया जा सकता है, और यह सबसे साधारण एन्कोडिंग है।<ref name="Evans_1961"/> अन्य में तथाकथित 4221 और 7421 एन्कोडिंग सम्मिलित हैं - जो बिट्स और "एक्सेस -3" के लिए उपयोग किए जाने वाले भार के नाम पर हैं।<ref name="Lala_2007"/> उदाहरण के लिए, बीसीडी अंक 6,8421 अंकन में {{code|0110'b}}, 4221 में {{code|1100'b}}(दो एनकोडिंग संभव हैं) है, 7421 में {{code|0110'b}}, जबकि एक्सेस-3 में {{code|1001'b}} (<math>6 + 3 = 9</math>) है. | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
Line 227: | Line 226: | ||
| colspan="2"| || style="background:lightgray" |0 || style="background:lightgray"|1 || style="background:lightgray"|2 || style="background:lightgray"|3 || style="background:lightgray"|4 || style="background:lightgray"|5 || style="background:lightgray"|6 || style="background:lightgray"|7 || style="background:lightgray"|8 || style="background:lightgray"|9 || style="background:lightgray"|10 || style="background:lightgray"|11 || style="background:lightgray"|12 || style="background:lightgray"|13 || style="background:lightgray"|14 || style="background:lightgray"|15 || | | colspan="2"| || style="background:lightgray" |0 || style="background:lightgray"|1 || style="background:lightgray"|2 || style="background:lightgray"|3 || style="background:lightgray"|4 || style="background:lightgray"|5 || style="background:lightgray"|6 || style="background:lightgray"|7 || style="background:lightgray"|8 || style="background:lightgray"|9 || style="background:lightgray"|10 || style="background:lightgray"|11 || style="background:lightgray"|12 || style="background:lightgray"|13 || style="background:lightgray"|14 || style="background:lightgray"|15 || | ||
|} | |} | ||
निम्न तालिका विभिन्न बीसीडी एन्कोडिंग प्रणाली में 0 से 9 तक दशमलव अंकों का प्रतिनिधित्व करती है। शीर्षलेखों में,<code>8421</code>प्रत्येक बिट के वजन को | निम्न तालिका विभिन्न बीसीडी एन्कोडिंग प्रणाली में 0 से 9 तक दशमलव अंकों का प्रतिनिधित्व करती है। शीर्षलेखों में,<code>8421</code>प्रत्येक बिट के वजन को निरुपित करता है। पांचवें कॉलम में (बीसीडी 84−2-1), दो भार ऋणात्मक हैं। अंकों के लिए एएससीआईआई और ईबीसीडीआईसी दोनों वर्ण कोड, जो ज़ोन बीसीडी के उदाहरण हैं, भी दिखाए गए हैं। | ||
{| border="1" cellpadding="2" cellspacing="0" style="margin:auto;" | {| border="1" cellpadding="2" cellspacing="0" style="margin:auto;" | ||
Line 330: | Line 329: | ||
| 1111 1001 | | 1111 1001 | ||
|} | |} | ||
जैसा कि अधिकांश कंप्यूटर 8-बिट बाइट्स में डेटा से निपटते हैं, बीसीडी संख्या को एन्कोड करने के लिए निम्न विधियों | जैसा कि अधिकांश कंप्यूटर 8-बिट बाइट्स में डेटा से निपटते हैं, बीसीडी संख्या को एन्कोड करने के लिए निम्न विधियों का उपयोग करना संभव है: | ||
* अनपैक्ड: प्रत्येक दशमलव अंक को | * अनपैक्ड: प्रत्येक दशमलव अंक को बाइट में एन्कोड किया जाता है, जिसमें चार बिट्स संख्या का प्रतिनिधित्व करते हैं और शेष बिट्स का कोई महत्व नहीं होता है। | ||
* पैक किया गया: दो दशमलव अंक | * पैक किया गया: दो दशमलव अंक बाइट में एन्कोड किए गए हैं, जिसमें अंक कम से कम महत्वपूर्ण निबल (बिट नंबरिंग सबसे- बनाम सबसे कम-महत्वपूर्ण बिट पहले) और दूसरा अंक सबसे महत्वपूर्ण निबल (बिट्स 4 से 7) में है।<ref group="nb" name="Packed_chars"/> | ||
उदाहरण के लिये, दशमलव संख्या को एन्कोड करना <code>'''91'''</code> दो बाइट्स के निम्नलिखित बाइनरी पैटर्न में अनपैक्ड बीसीडी परिणामों का उपयोग करना:<syntaxhighlight lang="d"> | उदाहरण के लिये, दशमलव संख्या को एन्कोड करना <code>'''91'''</code> दो बाइट्स के निम्नलिखित बाइनरी पैटर्न में अनपैक्ड बीसीडी परिणामों का उपयोग करना:<syntaxhighlight lang="d"> | ||
Decimal: 9 1 | Decimal: 9 1 | ||
Binary : 0000 1001 0000 0001 | Binary : 0000 1001 0000 0001 | ||
</syntaxhighlight>पैक किए गए बीसीडी में, वही संख्या | </syntaxhighlight>पैक किए गए बीसीडी में, वही संख्या बाइट में फिट होगी:<syntaxhighlight lang="d"> | ||
Decimal: 9 1 | Decimal: 9 1 | ||
Binary: 1001 0001 | Binary: 1001 0001 | ||
</syntaxhighlight>इसलिए | </syntaxhighlight>इसलिए अनपैक्ड बीसीडी बाइट के लिए संख्यात्मक सीमा शून्य से नौ समावेशी है, जबकि पैक बीसीडी बाइट की सीमा 0 से 9 समावेशी है। | ||
बाइट की सीमा से बड़ी संख्या का प्रतिनिधित्व करने के लिए किसी भी सन्निहित बाइट्स का उपयोग किया जा सकता है। उदाहरण के लिए, दशमलव संख्या का प्रतिनिधित्व करने के लिए <code>'''12345'''</code> पैक बीसीडी में, [[बड़े एंडियन]] प्रारूप का उपयोग करते हुए, प्रोग्राम निम्नानुसार एन्कोड करेगा:<syntaxhighlight lang="d"> | |||
Decimal: 0 1 2 3 4 5 | Decimal: 0 1 2 3 4 5 | ||
Binary : 0000 0001 0010 0011 0100 0101 | Binary : 0000 0001 0010 0011 0100 0101 | ||
Line 351: | Line 350: | ||
== पैक बीसीडी == | == पैक बीसीडी == | ||
पैक बीसीडी में (या बस पैक दशमलव<ref name="Dewar-Smosna_1990"/>), प्रत्येक बाइट के दो निबल्स में से प्रत्येक | पैक बीसीडी में (या बस पैक दशमलव<ref name="Dewar-Smosna_1990"/>), प्रत्येक बाइट के दो निबल्स में से प्रत्येक दशमलव अंक का प्रतिनिधित्व करता है।<ref group="nb" name="Packed_chars"/> पैक्ड बीसीडी कम से कम 1960 के दशक से उपयोग में है और तब से सभी आईबीएम मेनफ्रेम हार्डवेयर में प्रायुक्त किया गया है। अधिकांश कार्यान्वयन [[बड़े एंडियन]] होते हैं, अर्थात् प्रत्येक बाइट के ऊपरी आधे हिस्से में अधिक महत्वपूर्ण अंक के साथ, और सबसे बाएं बाइट (सबसे कम मेमोरी एड्रेस पर रहने वाले) के साथ पैक किए गए दशमलव मान के सबसे महत्वपूर्ण अंक होते हैं। सबसे दाहिने बाइट के निचले निबल को सामान्यतः साइन फ्लैग के रूप में उपयोग किया जाता है, चूंकि कुछ अहस्ताक्षरित अभ्यावेदन में साइन फ्लैग की कमी होती है। उदाहरण के रूप में, 4-बाइट मान में 8 निबल्स होते हैं, जिसमें ऊपरी 7 निबल्स 7-अंकीय दशमलव मान के अंकों को संग्रहीत करते हैं, और सबसे कम निबल दशमलव पूर्णांक मान के चिह्न को निरुपित करता है। | ||
सकारात्मक (+) के लिए मानक चिह्न मान 1100 ([[हेक्साडेसिमल]] सी) और ऋणात्मक (-) के लिए 1101 (डी) हैं। यह सम्मेलन [[EBCDIC|ईबीसीडीआईसी]] वर्णों और हस्ताक्षरित ओवरपंच प्रतिनिधित्व के लिए ज़ोन फ़ील्ड से आता है। अन्य अनुमत संकेत सकारात्मक के लिए 1010 (ए) और 1110 (ई) और नकारात्मक के लिए 1011 (बी) हैं। आईबीएम प्रणाली/360 प्रोसेसर 1010 (ए) और 1011 (बी) संकेतों का उपयोग करेंगे यदि एएससीआईआई -8 मानक के लिए पीएसडब्ल्यू में ए बिट सेट किया गया है जो कभी पारित नहीं हुआ। अधिकांश कार्यान्वयन 1111 (एफ) के साइन निबल के साथ अहस्ताक्षरित बीसीडी मान भी प्रदान करते हैं।<ref name="IBM_1980_POP"/><ref name="DEC_1983_PDP11"/><ref name="DEC_1985_VAX11"/> आईएलई आरपीजी सकारात्मक के लिए 1111 (एफ) और नकारात्मक के लिए 1101 (डी) का उपयोग करता है।<ref name="ILE-RPG"/> ये अंकों के लिए बिना साइन ओवरपंच के ईबीसीडीआईसी क्षेत्र से मेल खाते हैं। पैक्ड बीसीडी में, संख्या 127 को 0001 0010 0111 1100 (127C) और -127 को 0001 0010 0111 1101 (127D) द्वारा दर्शाया जाता है। बरोज़ प्रणाली ने नकारात्मक के लिए 1101 (डी) का उपयोग किया, और किसी भी अन्य मान को सकारात्मक संकेत मान माना जाता है (प्रोसेसर 1100 (सी) के लिए सकारात्मक संकेत को सामान्य करेगा)। | सकारात्मक (+) के लिए मानक चिह्न मान 1100 ([[हेक्साडेसिमल]] सी) और ऋणात्मक (-) के लिए 1101 (डी) हैं। यह सम्मेलन [[EBCDIC|ईबीसीडीआईसी]] वर्णों और हस्ताक्षरित ओवरपंच प्रतिनिधित्व के लिए ज़ोन फ़ील्ड से आता है। अन्य अनुमत संकेत सकारात्मक के लिए 1010 (ए) और 1110 (ई) और नकारात्मक के लिए 1011 (बी) हैं। आईबीएम प्रणाली/360 प्रोसेसर 1010 (ए) और 1011 (बी) संकेतों का उपयोग करेंगे यदि एएससीआईआई -8 मानक के लिए पीएसडब्ल्यू में ए बिट सेट किया गया है जो कभी पारित नहीं हुआ। अधिकांश कार्यान्वयन 1111 (एफ) के साइन निबल के साथ अहस्ताक्षरित बीसीडी मान भी प्रदान करते हैं।<ref name="IBM_1980_POP"/><ref name="DEC_1983_PDP11"/><ref name="DEC_1985_VAX11"/> आईएलई आरपीजी सकारात्मक के लिए 1111 (एफ) और नकारात्मक के लिए 1101 (डी) का उपयोग करता है।<ref name="ILE-RPG"/> ये अंकों के लिए बिना साइन ओवरपंच के ईबीसीडीआईसी क्षेत्र से मेल खाते हैं। पैक्ड बीसीडी में, संख्या 127 को 0001 0010 0111 1100 (127C) और -127 को 0001 0010 0111 1101 (127D) द्वारा दर्शाया जाता है। बरोज़ प्रणाली ने नकारात्मक के लिए 1101 (डी) का उपयोग किया, और किसी भी अन्य मान को सकारात्मक संकेत मान माना जाता है (प्रोसेसर 1100 (सी) के लिए सकारात्मक संकेत को सामान्य करेगा)। | ||
Line 392: | Line 391: | ||
| अहस्ताक्षरित | | अहस्ताक्षरित | ||
|} | |} | ||
इससे कोई फर्क नहीं पड़ता कि | इससे कोई फर्क नहीं पड़ता कि [[शब्द (डेटा प्रकार)]] कितने बाइट चौड़ा है, हमेशा निबल्स की संख्या भी होती है क्योंकि प्रत्येक बाइट में उनमें से दो होते हैं। इसलिए, n बाइट्स के शब्द में (2n)-1 दशमलव अंक तक हो सकते हैं, जो हमेशा अंकों की विषम संख्या होती है। डी अंकों के साथ दशमलव संख्या के लिए स्टोरेज स्पेस के {{sfrac|1|2}}(d+1) बाइट की आवश्यकता होती है। | ||
उदाहरण के लिए, | उदाहरण के लिए, 4-बाइट (32-बिट) शब्द में सात दशमलव अंक और चिन्ह हो सकता है और यह ±9,999,999 से लेकर मानों का प्रतिनिधित्व कर सकता है। इस प्रकार संख्या -1,234,567 7 अंकों की चौड़ी है और इसे इस प्रकार एन्कोड किया गया है: | ||
0001 0010 0011 0100 0101 0110 0111 1101 | 0001 0010 0011 0100 0101 0110 0111 1101 | ||
1 2 3 4 5 6 7 − | 1 2 3 4 5 6 7 − | ||
कैरेक्टर स्ट्रिंग्स की तरह, पैक्ड दशमलव का पहला बाइट{{snd}} कि सबसे महत्वपूर्ण दो अंकों के साथ{{snd}} | कैरेक्टर स्ट्रिंग्स की तरह, पैक्ड दशमलव का पहला बाइट{{snd}} कि सबसे महत्वपूर्ण दो अंकों के साथ{{snd}} सामान्यतः स्मृति में सबसे कम पते में संग्रहीत होता है, मशीन की अंतहीनता से स्वतंत्र होता हैं। | ||
इसके विपरीत, | इसके विपरीत, 4-बाइट बाइनरी दो का पूरक पूर्णांक -2,147,483,648 से +2,147,483,647 तक मानों का प्रतिनिधित्व कर सकता है। | ||
जबकि पैक्ड बीसीडी भंडारण का इष्टतम उपयोग नहीं करता है (समान संख्याओं को संग्रहीत करने के लिए [[बाइनरी नोटेशन]] की तुलना में लगभग 20% अधिक मेमोरी का उपयोग करके), [[एएससीआईआई]], ईबीसीडीआईसी, या [[यूनिकोड]] के विभिन्न एन्कोडिंग में रूपांतरण तुच्छ बना दिया जाता है, क्योंकि किसी अंकगणितीय संचालन की आवश्यकता नहीं होती है। अतिरिक्त भंडारण आवश्यकताओं को | जबकि पैक्ड बीसीडी भंडारण का इष्टतम उपयोग नहीं करता है (समान संख्याओं को संग्रहीत करने के लिए [[बाइनरी नोटेशन]] की तुलना में लगभग 20% अधिक मेमोरी का उपयोग करके), [[एएससीआईआई]], ईबीसीडीआईसी, या [[यूनिकोड]] के विभिन्न एन्कोडिंग में रूपांतरण तुच्छ बना दिया जाता है, क्योंकि किसी अंकगणितीय संचालन की आवश्यकता नहीं होती है। अतिरिक्त भंडारण आवश्यकताओं को सामान्यतः कैलकुलेटर या हाथ की गणना के साथ शुद्धता और संगतता की आवश्यकता से ऑफसेट किया जाता है जो निश्चित-बिंदु दशमलव अंकगणितीय प्रदान करता है। [[बीसीडी (कैरेक्टर एन्कोडिंग)]] के सघन पैकिंग उपस्थित हैं जो भंडारण दंड से बचते हैं और सामान्य रूपांतरणों के लिए अंकगणितीय संचालन की भी आवश्यकता नहीं होती है। | ||
पैक्ड बीसीडी [[COBOL|कोबोल]] प्रोग्रामिंग भाषा में कम्प्यूटेशनल-3 (कई अन्य कंपाइलर विक्रेताओं द्वारा अपनाया गया | पैक्ड बीसीडी [[COBOL|कोबोल]] प्रोग्रामिंग भाषा में कम्प्यूटेशनल-3 (कई अन्य कंपाइलर विक्रेताओं द्वारा अपनाया गया आईबीएम एक्सटेंशन) या पैक्ड-दशमलव (1985 कोबोल मानक का हिस्सा) डेटा प्रकार के रूप में समर्थित है। यह PL/I में निश्चित दशमलव के रूप में समर्थित है। आईबीएम प्रणाली/360 और बाद में संगत मेनफ्रेम के अतिरिक्त, पैक्ड बीसीडी डिजिटल उपकरण निगम और [[एसडीएस सिग्मा श्रृंखला]] मेनफ्रेम के कुछ मॉडलों के मूल वैक्स प्रोसेसर के मूल निर्देश सेट में प्रायुक्त किया गया है, और मेनफ्रेम (1950 के दशक के बरोज़ 205 से निकली) के [[बरोज़ कॉर्पोरेशन]] मीडियम प्रणाली्स के लिए मूल प्रारूप है। | ||
नकारात्मक संख्याओं के लिए दस का पूरक निरूपण पैक्ड (और अन्य) बीसीडी संख्याओं के संकेत को एन्कोडिंग के लिए | नकारात्मक संख्याओं के लिए दस का पूरक निरूपण पैक्ड (और अन्य) बीसीडी संख्याओं के संकेत को एन्कोडिंग के लिए वैकल्पिक दृष्टिकोण प्रदान करता है। इस स्थिति में, धनात्मक संख्याओं में हमेशा 0 और 4 (सम्मिलित) के बीच सबसे महत्वपूर्ण अंक होता है, जबकि ऋणात्मक संख्याओं को संगत धनात्मक संख्या के 10 के पूरक द्वारा दर्शाया जाता है। नतीजतन, यह प्रणाली 32-बिट पैक्ड बीसीडी नंबरों को -50,000,000 से +49,999,999 तक की सीमा के लिए अनुमति देती है, और -1 को 99999999 के रूप में दर्शाया गया है। (दो पूरक बाइनरी संख्याओं के साथ, सीमा शून्य के बारे में सममित नहीं है।) | ||
=== फिक्स्ड-पॉइंट पैक्ड दशमलव === | === फिक्स्ड-पॉइंट पैक्ड दशमलव === | ||
निश्चित-बिंदु दशमलव संख्या कुछ प्रोग्रामिंग भाषाओं (जैसे कोबोल और PL/I) द्वारा समर्थित हैं। ये भाषाएँ प्रोग्रामर को अंकों में से किसी | निश्चित-बिंदु दशमलव संख्या कुछ प्रोग्रामिंग भाषाओं (जैसे कोबोल और PL/I) द्वारा समर्थित हैं। ये भाषाएँ प्रोग्रामर को अंकों में से किसी के सामने अंतर्निहित दशमलव बिंदु निर्दिष्ट करने की अनुमति देती हैं। उदाहरण के लिए, बाइट्स 12 34 56 7C के साथ एन्कोड किया गया पैक्ड दशमलव मान निश्चित-बिंदु मान +1,234.567 का प्रतिनिधित्व करता है जब निहित दशमलव बिंदु चौथे और पांचवें अंकों के बीच स्थित होता है:<syntaxhighlight lang="d"> | ||
12 34 56 7C | 12 34 56 7C | ||
12 34.56 7+ | 12 34.56 7+ | ||
</syntaxhighlight>दशमलव बिंदु | </syntaxhighlight>दशमलव बिंदु वास्तविक में मेमोरी में संग्रहीत नहीं होता है, क्योंकि पैक्ड बीसीडी स्टोरेज प्रारूप इसके लिए प्रदान नहीं करता है। इसका स्थान केवल संकलक के लिए जाना जाता है, और उत्पन्न कोड विभिन्न अंकगणितीय कार्यों के अनुसार कार्य करता है। | ||
=== उच्च-घनत्व एनकोडिंग === | === उच्च-घनत्व एनकोडिंग === | ||
यदि | यदि दशमलव अंक के लिए चार बिट्स की आवश्यकता होती है, तो तीन दशमलव अंकों के लिए 12 बिट्स की आवश्यकता होती है। चूँकि, 2<sup>10</sup> के बाद से (1,024) 10<sup>3</sup> से बड़ा है (1,000), यदि तीन दशमलव अंक एक साथ एन्कोड किए जाते हैं, तो केवल 10 बिट की आवश्यकता होती है। इस तरह के दो एनकोडिंग चेन-हो एनकोडिंग और [[सघन रूप से भरा हुआ दशमलव]] (डीपीडी) हैं। उत्तरार्द्ध का लाभ यह है कि एन्कोडिंग के सबसेट नियमित बीसीडी के रूप में इष्टतम सात बिट्स में दो अंकों और चार बिट्स में अंक को एन्कोड करते हैं। | ||
==ज़ोनड दशमलव == | ==ज़ोनड दशमलव == | ||
कुछ कार्यान्वयन, उदाहरण के लिए [[IBM|आईबीएम]] मेनफ्रेम प्रणाली, ज़ोन्ड डेसीमल न्यूमेरिक रिप्रेजेंटेशन का समर्थन करते हैं। प्रत्येक दशमलव अंक को | कुछ कार्यान्वयन, उदाहरण के लिए [[IBM|आईबीएम]] मेनफ्रेम प्रणाली, ज़ोन्ड डेसीमल न्यूमेरिक रिप्रेजेंटेशन का समर्थन करते हैं। प्रत्येक दशमलव अंक को बाइट में संग्रहीत किया जाता है, जिसमें निचले चार बिट्स बीसीडी फॉर्म में अंक को कूटबद्ध करते हैं। ऊपरी चार बिट्स, जिन्हें ज़ोन बिट्स कहा जाता है, सामान्यतः निश्चित मान पर सेट होते हैं जिससे बाइट अंकों के अनुरूप वर्ण मान रखे। ईबीसीडीआईसी प्रणाली 1111 (हेक्स एफ) के क्षेत्र मान का उपयोग करते हैं; यह F0 से F9 (हेक्स) की सीमा में बाइट्स उत्पन्न करता है, जो 0 से 9 वर्णों के लिए ईबीसीडीआईसी कोड हैं। इसी तरह, एएससीआईआई प्रणाली 0011 (हेक्स 3) के ज़ोन मान का उपयोग करते हैं, जो वर्ण कोड 30 से 39 (हेक्स) देते हैं। | ||
हस्ताक्षरित ज़ोन वाले दशमलव मानों के लिए, सबसे दाहिना (कम से कम महत्वपूर्ण) ज़ोन निबल साइन अंक रखता है, जो मानों का | हस्ताक्षरित ज़ोन वाले दशमलव मानों के लिए, सबसे दाहिना (कम से कम महत्वपूर्ण) ज़ोन निबल साइन अंक रखता है, जो मानों का ही सेट है जो हस्ताक्षरित पैक्ड दशमलव संख्याओं के लिए उपयोग किया जाता है (ऊपर देखें)। इस प्रकार हेक्स बाइट्स F1 F2 D3 के रूप में एन्कोडेड ज़ोनड दशमलव मान हस्ताक्षरित दशमलव मान -123 का प्रतिनिधित्व करता है:<syntaxhighlight lang="d"> | ||
F1 F2 D3 | F1 F2 D3 | ||
1 2 −3 | 1 2 −3 | ||
Line 440: | Line 439: | ||
| style="width:10%; width:11%;"|F0 | | style="width:10%; width:11%;"|F0 | ||
| style="width:10%; width:11%;"|{ (*) | | style="width:10%; width:11%;"|{ (*) | ||
| style="width:10%; width:11%; background:#f0f0f0;"| | | style="width:10%; width:11%; background:#f0f0f0;"| | ||
| style="width:10%; width:11%;"|\ (*) | | style="width:10%; width:11%;"|\ (*) | ||
| style="width:10%; width:11%;"|0 | | style="width:10%; width:11%;"|0 | ||
Line 451: | Line 450: | ||
||A | ||A | ||
||~ (*) | ||~ (*) | ||
| style="background:#f0f0f0;"| | | style="background:#f0f0f0;"| | ||
||1 | ||1 | ||
|- style="text-align:center; font-family: monospace; font-size: larger" | |- style="text-align:center; font-family: monospace; font-size: larger" | ||
Line 540: | Line 539: | ||
| style="background:#f0f0f0;"| | | style="background:#f0f0f0;"| | ||
||} (*) | ||} (*) | ||
||^ | ||^ (*) | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 546: | Line 545: | ||
||1− | ||1− | ||
||D1 | ||D1 | ||
|| | ||B1 | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||J | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 555: | Line 554: | ||
|-शैली= पाठ्य-संरेखण:केंद्र; फ़ॉन्ट-फ़ैमिली: मोनोस्पेस; फ़ॉन्ट-आकार: बड़ा | |-शैली= पाठ्य-संरेखण:केंद्र; फ़ॉन्ट-फ़ैमिली: मोनोस्पेस; फ़ॉन्ट-आकार: बड़ा | ||
||2− | ||2− | ||
|| | ||D2 | ||
|| | ||B2 | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||K | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 565: | Line 564: | ||
|-शैली= पाठ्य-संरेखण:केंद्र; फ़ॉन्ट-फ़ैमिली: मोनोस्पेस; फ़ॉन्ट-आकार: बड़ा | |-शैली= पाठ्य-संरेखण:केंद्र; फ़ॉन्ट-फ़ैमिली: मोनोस्पेस; फ़ॉन्ट-आकार: बड़ा | ||
||3- | ||3- | ||
|| | ||D3 | ||
|| | ||B3 | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||L | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 576: | Line 575: | ||
||4− | ||4− | ||
||D4 | ||D4 | ||
|| | ||B4 | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||M | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 589: | Line 588: | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||N | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 599: | Line 598: | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||O | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 609: | Line 608: | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||P | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 616: | Line 615: | ||
||8- | ||8- | ||
||D8 | ||D8 | ||
|| | ||B8 | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||Q | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 629: | Line 628: | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
|| | ||R | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
| शैली = पृष्ठभूमि:#f0f0f0; | | | शैली = पृष्ठभूमि:#f0f0f0; | | ||
Line 638: | Line 637: | ||
=== फिक्स्ड-पॉइंट ज़ोनड दशमलव === | === फिक्स्ड-पॉइंट ज़ोनड दशमलव === | ||
कुछ भाषाएँ (जैसे | कुछ भाषाएँ (जैसे कोबोल और PL/I) निश्चित-बिंदु ज़ोन वाले दशमलव मानों का सीधे समर्थन करती हैं, किसी संख्या के दशमलव अंकों के बीच किसी स्थान पर अंतर्निहित दशमलव बिंदु निर्दिष्ट करती हैं। उदाहरण के लिए, चौथे अंक के दाईं ओर अंतर्निहित दशमलव बिंदु के साथ छह-बाइट हस्ताक्षरित ज़ोनड दशमलव मान दिया गया है, हेक्स बाइट्स F1 F2 F7 F9 F5 C0 मान +1,279.50 का प्रतिनिधित्व करता है: | ||
F1 F2 F7 F9 F5 C0 | F1 F2 F7 F9 F5 C0 | ||
1 2 7 9. 5 +0 | 1 2 7 9. 5 +0 | ||
Line 645: | Line 644: | ||
=== आईबीएम === | === आईबीएम === | ||
{{Main| | {{Main|बीसीडीआईसी}} | ||
आईबीएम ने 6-बिट [[अक्षरांकीय]] कोड के लिए [[बाइनरी-कोडेड दशमलव इंटरचेंज कोड]] ( | |||
आईबीएम ने 6-बिट [[अक्षरांकीय|अल्फ़ान्यूमेरिक]] कोड के लिए [[बाइनरी-कोडेड दशमलव इंटरचेंज कोड]] (बीसीडीआईसी, जिसे कभी-कभी सिर्फ बीसीडी कहा जाता है) का उपयोग किया, जो संख्याओं, अपर-केस अक्षरों और विशेष वर्णों का प्रतिनिधित्व करता था। [[आईबीएम 1620]] (1959 में प्रारंभ), [[आईबीएम 1400 श्रृंखला]], और गैर-आईबीएम 700/7000 श्रृंखला के गैर-दशमलव आर्किटेक्चर सदस्यों सहित अधिकांश प्रारंभिक आईबीएम कंप्यूटरों में बीसीडीआईसी अल्फ़ामेरिक्स की कुछ भिन्नता का उपयोग किया जाता है। | |||
आईबीएम 1620 की मेमोरी को 6-बिट एड्रेसेबल अंकों में व्यवस्थित किया जाता है, सामान्य 8, 4, 2, 1 प्लस एफ, फ्लैग बिट | आईबीएम 1400 श्रृंखला चरित्र-पता योग्य मशीनें हैं, प्रत्येक स्थान पर B, A, 8, 4, 2 और 1 लेबल वाले छह बिट्स हैं, साथ ही विषम समानता जांच बिट (C) और शब्द चिह्न बिट (M)। एन्कोडिंग अंक 1 से 9 के लिए, B और ए शून्य हैं और अंकों का मान मानक 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), स्मृति में (बी,8,2,1) के रूप में एन्कोड किया गया था। यह सर्किट्री को केवल कुछ विशेष स्थिति के साथ पंच कार्ड प्रारूप और आंतरिक भंडारण प्रारूप के बीच परिवर्तित करने की अनुमति देता है। महत्वपूर्ण विशेष स्थिति अंक 0 है, जो कार्ड में अकेला 0 पंच और कोर मेमोरी में (8,2) द्वारा दर्शाया गया है।<ref name="Thelen_Van1401" /> | ||
आईबीएम 1620 की मेमोरी को 6-बिट एड्रेसेबल अंकों में व्यवस्थित किया जाता है, सामान्य 8, 4, 2, 1 प्लस एफ, फ्लैग बिट के रूप में उपयोग किया जाता है और सी विषम समता जांच बिट है। बीसीडी अल्फ़ामेरिक्स को अंक जोड़े का उपयोग करके एन्कोड किया गया है, और सम-संबोधित अंक में ज़ोन के साथ और विषम-पता वाले अंक में अंक, ज़ोन 12, 11, और 0 ज़ोन पंच से संबंधित है जैसा कि 1400 श्रृंखला में है। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया। | |||
डेसीमल आर्किटेक्चर में [[IBM 7070|आईबीएम 7070]], [[IBM 7072|आईबीएम 7072]], और [[IBM 7074|आईबीएम 7074]] अल्फ़ामेरिक्स को 10 अंकों वाले शब्द के डिजिट जोड़े (अंकों में [[पांच में से दो कोड]] का उपयोग करके, 'नहीं' बीसीडी) का उपयोग करके एन्कोड किया गया है, ज़ोन में बाएँ अंक और दाएँ अंक में अंक। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया। | डेसीमल आर्किटेक्चर में [[IBM 7070|आईबीएम 7070]], [[IBM 7072|आईबीएम 7072]], और [[IBM 7074|आईबीएम 7074]] अल्फ़ामेरिक्स को 10 अंकों वाले शब्द के डिजिट जोड़े (अंकों में [[पांच में से दो कोड]] का उपयोग करके, 'नहीं' बीसीडी) का उपयोग करके एन्कोड किया गया है, ज़ोन में बाएँ अंक और दाएँ अंक में अंक। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया। | ||
प्रणाली/360 | प्रणाली/360 के प्रारंभ के साथ, आईबीएम ने 6-बिट बीसीडी अल्फ़ामेरिक्स को 8-बिट ईबीसीडीआईसी तक विस्तारित किया, जिससे कई और वर्णों (जैसे, लोअरकेस अक्षर) को जोड़ा जा सके। चर लंबाई पैक बीसीडी संख्यात्मक डेटा प्रकार भी प्रायुक्त किया गया है, जो मशीन निर्देश प्रदान करता है जो सीधे पैक किए गए दशमलव डेटा पर अंकगणित करता है। | ||
[[आईबीएम 1130]] और [[आईबीएम 1800]] पर, पैक्ड बीसीडी आईबीएम के वाणिज्यिक सबरूटीन पैकेज द्वारा सॉफ्टवेयर में समर्थित है। | [[आईबीएम 1130]] और [[आईबीएम 1800]] पर, पैक्ड बीसीडी आईबीएम के वाणिज्यिक सबरूटीन पैकेज द्वारा सॉफ्टवेयर में समर्थित है। | ||
आज, आईबीएम प्रोसेसर और डेटाबेस, जैसे [[आईबीएम डीबी2]], मेनफ्रेम और [[शक्ति6]] में बीसीडी डेटा का अभी भी भारी उपयोग किया जाता है। इन उत्पादों में, बीसीडी | आज, आईबीएम प्रोसेसर और डेटाबेस, जैसे [[आईबीएम डीबी2]], मेनफ्रेम और [[शक्ति6]] में बीसीडी डेटा का अभी भी भारी उपयोग किया जाता है। इन उत्पादों में, बीसीडी सामान्यतः बीसीडी (ईबीसीडीआईसी या एएससीआईआई के रूप में), पैक्ड बीसीडी (दो दशमलव अंक प्रति बाइट), या शुद्ध बीसीडी एन्कोडिंग (प्रत्येक बाइट के कम चार बिट्स में बीसीडी के रूप में संग्रहीत दशमलव अंक) होता है। इन सभी का उपयोग हार्डवेयर रजिस्टरों और प्रसंस्करण इकाइयों और सॉफ्टवेयर में किया जाता है। ईबीसीडीआईसी टेबल अनलोड में पैक किए गए दशमलव को पढ़ने योग्य संख्या में बदलने के लिए, आप जेसीएल यूटिलिटी द्फ्सोर्ट के आउटरेक फील्ड्स मास्क का उपयोग कर सकते हैं।<ref name="IBM_ZOS_2016"/> | ||
=== अन्य कंप्यूटर === | === अन्य कंप्यूटर === | ||
डिजिटल उपकरण निगम वीएएक्स-11 श्रृंखला में निर्देश सेट | डिजिटल उपकरण निगम वीएएक्स-11 श्रृंखला में निर्देश सेट सम्मिलित है जो सीधे पैक किए गए बीसीडी डेटा पर अंकगणित कर सकता है और पैक किए गए बीसीडी डेटा और अन्य पूर्णांक प्रस्तुतियों के बीच परिवर्तित कर सकता है।<ref name="DEC_1985_VAX11"/> वीएएक्स का पैक्ड बीसीडी प्रारूप आईबीएम प्रणाली/360 और आईबीएम के बाद के संगत प्रोसेसर के साथ संगत है। माइक्रोवीएएक्स और बाद में वीएएक्स कार्यान्वयन ने इस क्षमता को CPU से हटा दिया लेकिन ऑपरेटिंग प्रणाली द्वारा आपूर्ति की गई सॉफ़्टवेयर लाइब्रेरी में लापता निर्देशों को प्रायुक्त करके पहले की मशीनों के साथ कोड संगतता बनाए रखी। निष्क्रिय निर्देशों का सामना होने पर इसे अपवाद प्रबंधन के माध्यम से स्वचालित रूप से प्रायुक्त किया जाता है, जिससे उनका उपयोग करने वाले प्रोग्राम नई मशीनों पर बिना किसी संशोधन के निष्पादित हो सकें। | ||
[[Intel]] x86 आर्किटेक्चर | [[Intel|इंटेल]] x86 आर्किटेक्चर [[Intel BCD opcode|इंटेल बीसीडी ओपकोड]] अद्वितीय 18-अंकीय (दस-बाइट) बीसीडी प्रारूप का समर्थन करता है जिसे फ़्लोटिंग पॉइंट रजिस्टरों में लोड और संग्रहीत किया जा सकता है, जहाँ से संगणना की जा सकती है।<ref name="Intel_2020_V1"/> | ||
[[मोटोरोला 68000 श्रृंखला]] में बीसीडी निर्देश थे।<ref name="Motorola_m68k"/> | [[मोटोरोला 68000 श्रृंखला]] में बीसीडी निर्देश थे।<ref name="Motorola_m68k"/> | ||
नवीन कंप्यूटरों में सीपीयू के निर्देश सेट के अतिरिक्त ऐसी क्षमताओं को लगभग हमेशा सॉफ्टवेयर में प्रायुक्त किया जाता है, लेकिन व्यावसायिक और वित्तीय अनुप्रयोगों में बीसीडी न्यूमेरिक डेटा अभी भी बहुत साधारण है। शब्द-समानांतर तर्क और बाइनरी अंकगणितीय संचालन के अनुक्रमों को समझने में कठिन लेकिन कठिन का उपयोग करके पैक्ड बीसीडी और ज़ोनड दशमलव ऐड-या-घटाना संचालन को प्रायुक्त करने के लिए तरकीबें हैं।<ref name="Jones_1999_AT"/> उदाहरण के लिए, निम्नलिखित कोड ([[सी (प्रोग्रामिंग भाषा)]] में लिखा गया है) 32-बिट बाइनरी ऑपरेशंस का उपयोग करके हस्ताक्षरित 8-अंकीय पैक बीसीडी जोड़ की गणना करता है:<syntaxhighlight lang="d"> | |||
< | uint32_t BCDadd(uint32_t a, uint32_t b) | ||
uint32_t | |||
{ | { | ||
uint32_t | uint32_t t1, t2; // unsigned 32-bit intermediate values | ||
t1 = a + 0x06666666; | |||
t2 = t1 ^ b; // sum without carry propagation | |||
t1 = t1 + b; // provisional sum | |||
t2 = t1 ^ t2; // all the binary carry bits | |||
t2 = ~t2 & 0x11111110; // just the BCD carry bits | |||
t2 = (t2 >> 2) | (t2 >> 3); // correction | |||
return t1 - t2; // corrected BCD sum | |||
} | } | ||
</ | </syntaxhighlight> | ||
== इलेक्ट्रॉनिक्स में बीसीडी == | == इलेक्ट्रॉनिक्स में बीसीडी == | ||
बीसीडी इलेक्ट्रॉनिक प्रणालियों में बहुत | बीसीडी इलेक्ट्रॉनिक प्रणालियों में बहुत साधारण है जहां संख्यात्मक मान प्रदर्शित किया जाना है, विशेष रूप से केवल डिजिटल लॉजिक वाले प्रणाली में, और माइक्रोप्रोसेसर नहीं है। बीसीडी को नियोजित करके, प्रत्येक अंक को अलग एकल उप-सर्किट के रूप में मानकर प्रदर्शित करने के लिए संख्यात्मक डेटा के हेरफेर को बहुत सरल बनाया जा सकता है। यह डिस्प्ले हार्डवेयर की भौतिक वास्तविकता से अधिक निकटता से मेल खाता है - उदाहरण के लिए, डिज़ाइनर मीटरिंग सर्किट बनाने के लिए अलग-अलग समान सात-खंड डिस्प्ले की श्रृंखला का उपयोग करना चुन सकता है। यदि संख्यात्मक मात्रा को शुद्ध बाइनरी के रूप में संग्रहीत और हेरफेर किया गया था, तो इस तरह के डिस्प्ले के साथ इंटरफेस करने के लिए जटिल सर्किट्री की आवश्यकता होगी। इसलिए, ऐसे स्थिति में जहां गणना अपेक्षाकृत सरल होती है, बीसीडी के साथ काम करने से बाइनरी में परिवर्तित करने की तुलना में समग्र सरल प्रणाली हो सकती है। अधिकांश पॉकेट कैलकुलेटर अपनी सभी गणना बीसीडी में करते हैं। | ||
यही तर्क तब | यही तर्क तब प्रायुक्त होता है जब इस प्रकार का हार्डवेयर एम्बेडेड माइक्रोकंट्रोलर या अन्य छोटे प्रोसेसर का उपयोग करता है। अधिकांश, बीसीडी प्रारूप में आंतरिक रूप से संख्याओं का प्रतिनिधित्व करने के परिणामस्वरूप छोटे कोड होते हैं, क्योंकि इस तरह के सीमित प्रोसेसर पर बाइनरी प्रतिनिधित्व से रूपांतरण महंगा हो सकता है। इन अनुप्रयोगों के लिए, कुछ छोटे प्रोसेसर में समर्पित अंकगणितीय मोड होते हैं, जो बीसीडी मात्रा में हेरफेर करने वाले रूटीन लिखते समय सहायता करते हैं।<ref name="IEEE_CORDIC"/><ref name="BCS_CORDIC"/> | ||
'''बीसीडी के साथ संचालन''' | |||
=== जोड़ === | === जोड़ === | ||
पहले बाइनरी में जोड़कर और बाद में बीसीडी में परिवर्तित करके अतिरिक्त प्रदर्शन करना संभव है। दो अंकों के सरल योग का रूपांतरण 6 जोड़कर किया जा सकता है (अर्थात, 16 - 10) जब अंकों की | पहले बाइनरी में जोड़कर और बाद में बीसीडी में परिवर्तित करके अतिरिक्त प्रदर्शन करना संभव है। दो अंकों के सरल योग का रूपांतरण 6 जोड़कर किया जा सकता है (अर्थात, 16 - 10) जब अंकों की जोड़ी को जोड़ने के पांच-बिट परिणाम का मान 9 से अधिक हो। 6 जोड़ने का कारण यह है 16 संभावित 4-बिट बीसीडी मान हैं (2<sup>4</sup> के बाद से = 16), लेकिन केवल 10 मान मान्य हैं (0000 से 1001)। उदाहरण के लिए: | ||
1001 + 1000 = 10001 | 1001 + 1000 = 10001 | ||
9 + 8 = 17 | |||
10001 बाइनरी है, दशमलव नहीं, वांछित परिणाम का प्रतिनिधित्व, लेकिन सबसे महत्वपूर्ण 1 (कैरी) 4-बिट बाइनरी नंबर में फिट नहीं हो सकता है। बीसीडी में दशमलव के रूप में, प्रति अंक 9 (1001) से अधिक मान | 10001 बाइनरी है, दशमलव नहीं, वांछित परिणाम का प्रतिनिधित्व, लेकिन सबसे महत्वपूर्ण 1 (कैरी) 4-बिट बाइनरी नंबर में फिट नहीं हो सकता है। बीसीडी में दशमलव के रूप में, प्रति अंक 9 (1001) से अधिक मान उपस्थित नहीं हो सकता है। इसे ठीक करने के लिए, कुल में 6 (0110) जोड़ा जाता है, और फिर परिणाम को दो निबल्स के रूप में माना जाता है: | ||
10001 + 0110 = 00010111 => 0001 0111 | 10001 + 0110 = 00010111 => 0001 0111 | ||
17 + 6 = 23 1 7 | |||
परिणाम के दो निबल्स, 0001 और 0111, अंक 1 और 7 के अनुरूप हैं। यह बीसीडी में 17 देता है, जो सही परिणाम है। | परिणाम के दो निबल्स, 0001 और 0111, अंक 1 और 7 के अनुरूप हैं। यह बीसीडी में 17 देता है, जो सही परिणाम है। | ||
इस तकनीक को दाएं से बाएं समूहों में जोड़कर कई अंकों को जोड़ने के लिए बढ़ाया जा सकता है, दूसरे अंक को कैरी के रूप में प्रचारित किया जा सकता है, हमेशा प्रत्येक अंक-जोड़ी के 5-बिट परिणाम की तुलना 9 से की जाती है। कुछ सीपीयू एक [[आधा ले जाने वाला झंडा]] प्रदान करते हैं। द्विआधारी जोड़ और घटाव संचालन के बाद बीसीडी अंकगणितीय समायोजन की सुविधा के लिए। [[इंटेल 8080]], [[Zilog Z80]]<ref name="Zaks_1982"/>और x86 परिवार के सीपीयू<ref name="Cloutier_2019"/>ओपकोड डीएए (दशमलव समायोजन संचायक) प्रदान करें। | इस तकनीक को दाएं से बाएं समूहों में जोड़कर कई अंकों को जोड़ने के लिए बढ़ाया जा सकता है, दूसरे अंक को कैरी के रूप में प्रचारित किया जा सकता है, हमेशा प्रत्येक अंक-जोड़ी के 5-बिट परिणाम की तुलना 9 से की जाती है। कुछ सीपीयू एक [[आधा ले जाने वाला झंडा]] प्रदान करते हैं। द्विआधारी जोड़ और घटाव संचालन के बाद बीसीडी अंकगणितीय समायोजन की सुविधा के लिए। [[इंटेल 8080]], [[Zilog Z80|ज़िलोग जेड80]]<ref name="Zaks_1982"/> और x86 परिवार के सीपीयू<ref name="Cloutier_2019"/> ओपकोड डीएए (दशमलव समायोजन संचायक) प्रदान करें। | ||
=== घटाव === | === घटाव === | ||
घटाव घटाव के दहाई के पूरक को घटाकर किया जाता है। बीसीडी में किसी संख्या के चिह्न का प्रतिनिधित्व करने के लिए, संख्या 0000 का उपयोग [[सकारात्मक संख्या]] का प्रतिनिधित्व करने के लिए किया जाता है, और 1001 का उपयोग [[ऋणात्मक संख्या]] का प्रतिनिधित्व करने के लिए किया जाता है। शेष 14 संयोजन अमान्य चिह्न हैं। हस्ताक्षरित बीसीडी घटाव को समझाने के लिए, निम्नलिखित समस्या पर विचार करें: | घटाव घटाव के दहाई के पूरक को घटाकर किया जाता है। बीसीडी में किसी संख्या के चिह्न का प्रतिनिधित्व करने के लिए, संख्या 0000 का उपयोग [[सकारात्मक संख्या]] का प्रतिनिधित्व करने के लिए किया जाता है, और 1001 का उपयोग [[ऋणात्मक संख्या]] का प्रतिनिधित्व करने के लिए किया जाता है। शेष 14 संयोजन अमान्य चिह्न हैं। हस्ताक्षरित बीसीडी घटाव को समझाने के लिए, निम्नलिखित समस्या 357 - 432 पर विचार करें: | ||
हस्ताक्षरित बीसीडी में, 357 0000 0011 0101 0111 है। 432 का दस का पूरक 432 के नौ के पूरक को लेकर और फिर एक जोड़कर प्राप्त किया जा सकता है। तो, 999 - 432 = 567, और 567 + 1 = | हस्ताक्षरित बीसीडी में, 357 0000 0011 0101 0111 है। 432 का दस का पूरक 432 के नौ के पूरक को लेकर और फिर एक जोड़कर प्राप्त किया जा सकता है। तो, 999 - 432 = 567, और 567 + 1 = 568 होगा। बीसीडी में 568 से पहले नकारात्मक चिह्न कोड द्वारा, संख्या -432 का प्रतिनिधित्व किया जा सकता है। तो, हस्ताक्षरित बीसीडी में -432 1001 0101 0110 1000 है। | ||
अब जब दोनों नंबरों को हस्ताक्षरित बीसीडी में दर्शाया गया है, तो उन्हें एक साथ जोड़ा जा सकता है: | अब जब दोनों नंबरों को हस्ताक्षरित बीसीडी में दर्शाया गया है, तो उन्हें एक साथ जोड़ा जा सकता है:<syntaxhighlight lang="d"> | ||
0000 0011 0101 0111 | |||
0 3 5 7 | |||
+ 1001 0101 0110 1000 | |||
9 5 6 8 | |||
= 1001 1000 1011 1111 | |||
9 8 11 15 | |||
</syntaxhighlight>चूंकि बीसीडी दशमलव प्रतिनिधित्व का रूप है, ऊपर दिए गए कई अंक अमान्य हैं। इस घटना में अमान्य प्रविष्टि (1001 से अधिक कोई बीसीडी अंक) उपस्थित है, 6 को कैरी बिट उत्पन्न करने के लिए जोड़ा जाता है और योग को वैध प्रविष्टि बनने का कारण बनता है। इसलिए, अमान्य प्रविष्टियों में 6 जोड़ने से निम्नलिखित परिणाम मिलते हैं:<syntaxhighlight lang="d"> | |||
1001 1000 1011 1111 | |||
9 8 11 15 | |||
+ 0000 0000 0110 0110 | |||
0 0 6 6 | |||
= 1001 1001 0010 0101 | |||
9 9 2 5 | |||
</syntaxhighlight>इस प्रकार घटाव का परिणाम 1001 1001 0010 0101 (−925) है। परिणाम की पुष्टि करने के लिए, ध्यान दें कि पहला अंक 9 है, जिसका अर्थ ऋणात्मक है। यह सही प्रतीत होता है क्योंकि 357 − 432 का परिणाम ऋणात्मक संख्या में होना चाहिए। शेष निबल्स बीसीडी हैं, इसलिए 1001 0010 0101 925 है। 925 का दस का पूरक 1000 - 925 = 75 है, इसलिए परिकलित उत्तर -75 है। | |||
यदि अलग-अलग संख्या में निबल्स एक साथ जोड़े जा रहे हैं (जैसे कि 1053 − 2), कम अंकों वाली संख्या को दहाई का पूरक लेने या घटाने से पहले पहले शून्य के साथ जोड़ा जाना चाहिए। इसलिए, 1053 − 2 के साथ, 2 को पहले बीसीडी में 0002 के रूप में प्रदर्शित करना होगा, और 0002 के दहाई के पूरक की गणना करनी होगी। | |||
'''शुद्ध बाइनरी के साथ तुलना''' | |||
=== लाभ === | === लाभ === | ||
* कई गैर-अभिन्न मान, जैसे दशमलव 0.2, बाइनरी (.001100110011...) में | * कई गैर-अभिन्न मान, जैसे दशमलव 0.2, बाइनरी (.001100110011...) में अनंत स्थान-मान प्रतिनिधित्व करते हैं, लेकिन बाइनरी-कोडेड दशमलव (0.0010) में परिमित स्थान-मान होता है। नतीजतन, दशमलव अंशों के द्विआधारी-कोडित दशमलव निरूपण पर आधारित प्रणाली ऐसे मानों का प्रतिनिधित्व करने और गणना करने में त्रुटियों से बचती है। यह वित्तीय गणना में उपयोगी है। | ||
* 10 की | * 10 की घात से स्केल करना आसान है। | ||
* दशमलव अंक सीमा पर पूर्णांक बनाना सरल है। दशमलव में जोड़ और घटाव को गोल करने की आवश्यकता नहीं है।{{dubious|Rounding|date=November 2021}} | * दशमलव अंक सीमा पर पूर्णांक बनाना सरल है। दशमलव में जोड़ और घटाव को गोल करने की आवश्यकता नहीं है।{{dubious|Rounding|date=November 2021}} | ||
* दो दशमलव संख्याओं का संरेखण (उदाहरण के लिए 1.3 + 27.08) | * दो दशमलव संख्याओं का संरेखण (उदाहरण के लिए 1.3 + 27.08) सरल, त्रुटिहीन बदलाव है। | ||
* | * वर्ण रूप में या प्रदर्शन के लिए रूपांतरण (उदाहरण के लिए, [[एक्सएमएल]] जैसे टेक्स्ट-आधारित प्रारूप में, या सात-सेगमेंट डिस्प्ले के लिए सिग्नल ड्राइव करने के लिए) साधारण प्रति-अंकीय मैपिंग है, और इसे रैखिक (O(''n'')) समय (बड़े-बड़े) में किया जा सकता है। शुद्ध बाइनरी अंक प्रणाली से रूपांतरण में अपेक्षाकृत जटिल तर्क सम्मिलित होता है जो अंकों को फैलाता है, और बड़ी संख्या के लिए, कोई रैखिक-समय रूपांतरण एल्गोरिदम ज्ञात नहीं है (देखें {{see section|बाइनरी संख्या प्रणाली|अन्य अंक प्रणालियों में और से रूपांतरण}}). | ||
=== | === हानि === | ||
* कुछ ऑपरेशन | * कुछ ऑपरेशन प्रायुक्त करने के लिए अधिक जटिल हैं। ऐडर (इलेक्ट्रॉनिक्स) को अतिरिक्त तर्क की आवश्यकता होती है जिससे वे लपेट सकें और जल्दी कैरी कर सकें। बीसीडी ऐड के लिए प्योर बाइनरी की तुलना में 15 से 20 फीसदी अधिक सर्किट्री की जरूरत होती है।{{Citation needed|date=May 2011}} गुणन के लिए एल्गोरिदम के उपयोग की आवश्यकता होती है जो शिफ्ट-मास्क-ऐड ( बाइनरी अंक प्रणाली गुणा, बाइनरी शिफ्ट की आवश्यकता होती है और समकक्ष, प्रति-अंक या अंकों के समूह की आवश्यकता होती है) की तुलना में कुछ अधिक जटिल होती है। | ||
* मानक बीसीडी को चार बिट्स प्रति अंक की आवश्यकता होती है, बाइनरी एन्कोडिंग की तुलना में लगभग 20 प्रतिशत अधिक स्थान ( | * मानक बीसीडी को चार बिट्स प्रति अंक की आवश्यकता होती है, बाइनरी एन्कोडिंग की तुलना में लगभग 20 प्रतिशत अधिक स्थान (log<sub>2</sub> करने के लिए 4 बिट्स का अनुपात) 10 बिट 1.204 है)। जब पैक किया जाता है जिससे तीन अंकों को दस बिट्स में एन्कोड किया जा सके, स्टोरेज ओवरहेड बहुत कम हो जाता है, एन्कोडिंग की मूल्य पर जो वर्तमान हार्डवेयर पर 8-बिट बाइट सीमाओं के साथ असंरेखित है, जिसके परिणामस्वरूप इन प्रणालियों पर धीमी गति से कार्यान्वयन होता है। | ||
* बीसीडी के व्यावहारिक | * बीसीडी के व्यावहारिक वर्तमान कार्यान्वयन सामान्यतः देशी बीसीडी संचालन के लिए सीमित प्रोसेसर समर्थन के कारण, विशेष रूप से एम्बेडेड प्रणाली पर बाइनरी प्रस्तुतियों पर संचालन की तुलना में धीमे होते हैं।<ref name="Mathur_1989"/> | ||
== प्रतिनिधिक रूपांतर == | == प्रतिनिधिक रूपांतर == | ||
विभिन्न बीसीडी कार्यान्वयन | विभिन्न बीसीडी कार्यान्वयन उपस्थित हैं जो संख्याओं के लिए अन्य अभ्यावेदन नियोजित करते हैं। [[टेक्सस उपकरण]], [[हेवलेट पैकर्ड]] और अन्य द्वारा निर्मित [[प्रोग्राम करने योग्य कैलकुलेटर]] सामान्यतः एक्सपोनेंट के लिए दो या तीन अंकों के साथ फ्लोटिंग-पॉइंट बीसीडी प्रारूप को नियोजित करते हैं। साइन डिजिट के अतिरिक्त बिट्स का उपयोग विशेष संख्यात्मक मानों जैसे अनंत, अंडरफ्लो/ओवरफ्लो और एरर (ब्लिंकिंग डिस्प्ले) को निरुपित करने के लिए किया जा सकता है।, जैसे कि अनंत, [[अंकगणितीय अंतर्प्रवाह]]/[[अंकगणितीय अतिप्रवाह]], और [[परिभाषित और अपरिभाषित]] (निमिष प्रदर्शन)। | ||
===हस्ताक्षरित विविधताएं=== | ===हस्ताक्षरित विविधताएं=== | ||
हस्ताक्षरित दशमलव मानों को कई | हस्ताक्षरित दशमलव मानों को कई विधियों से दर्शाया जा सकता है। कोबोल प्रोग्रामिंग भाषा, उदाहरण के लिए, पाँच ज़ोन वाले दशमलव स्वरूपों का समर्थन करती है, प्रत्येक अलग विधियों से संख्यात्मक चिह्न को कूटबद्ध करता है: | ||
{| class="wikitable" style="width:95%" | {| class="wikitable" style="width:95%" | ||
|- | |- | ||
! style="background:#D0E0FF; width:25%"| | ! style="background:#D0E0FF; width:25%"| प्रकार | ||
! style="background:#D0E0FF; width:55%"| | ! style="background:#D0E0FF; width:55%"| विवरण | ||
! style="background:#D0E0FF; width:20%"| | ! style="background:#D0E0FF; width:20%"| उदाहरण | ||
|- | |- | ||
| [[Signed number representations| | | [[Signed number representations|अहस्ताक्षरित]] | ||
| | | नो साइन [[nibble|निब्बल]] | ||
| <code>F1 F2 <u>F</u>3</code> | | <code>F1 F2 <u>F</u>3</code> | ||
|- | |- | ||
| | | हस्ताक्षरित अनुगामी ''(कैनोनिकल प्रारूप)'' | ||
| | | अंतिम (कम से कम महत्वपूर्ण) बाइट में साइन इन करें | ||
| <code>F1 F2 <u>C</u>3</code> | | <code>F1 F2 <u>C</u>3</code> | ||
|- | |- | ||
| | | हस्ताक्षरित अग्रणी ''(ओवरपंच)'' | ||
| | | पहले (सबसे महत्वपूर्ण) बाइट में साइन इन करें | ||
| <code><u>C</u>1 F2 F3</code> | | <code><u>C</u>1 F2 F3</code> | ||
|- | |- | ||
| | | अनुगामी अलग हस्ताक्षर किए | ||
| | | डिजिट बाइट्स के बाद साइन कैरेक्टर बाइट ('+' या '−') अलग करें | ||
| <code>F1 F2 F3 <u>2B</u></code> | | <code>F1 F2 F3 <u>2B</u></code> | ||
|- | |- | ||
| | | हस्ताक्षर किए अग्रणी अलग | ||
| | | डिजिट बाइट से पहले साइन कैरेक्टर बाइट ('+' या '-') अलग करें | ||
| <code><u>2B</u> F1 F2 F3</code> | | <code><u>2B</u> F1 F2 F3</code> | ||
|} | |} | ||
Line 782: | Line 781: | ||
===टेलीफोनी बाइनरी-कोडेड दशमलव (टीबीसीडी) === | ===टेलीफोनी बाइनरी-कोडेड दशमलव (टीबीसीडी) === | ||
[[3GPP]] ने टीबीसीडी का विकास किया,<ref name="3GPP_2013_TS29002"/>बीसीडी का विस्तार जहां विशिष्ट [[टेलीफ़ोनी]] वर्णों को जोड़ने के लिए शेष (अप्रयुक्त) बिट संयोजनों का उपयोग किया जाता है,<ref name="ETSI_SPS"/><ref name="OpenSS_XMAP"/> | [[3GPP|3जीपीपी]] ने टीबीसीडी का विकास किया था,<ref name="3GPP_2013_TS29002"/> और बीसीडी का विस्तार जहां विशिष्ट [[टेलीफ़ोनी]] वर्णों को जोड़ने के लिए शेष (अप्रयुक्त) बिट संयोजनों का उपयोग किया जाता है,<ref name="ETSI_SPS"/><ref name="OpenSS_XMAP"/> जिसमें टेलीफोन कीपैड के मूल डिज़ाइन में पाए जाने वाले अंक समान होते हैं। | ||
{| class="wikitable" style="width:30%; text-align:center" | {| class="wikitable" style="width:30%; text-align:center" | ||
|- | |- | ||
! style="background:#E0E0E0; width:50%" | | ! style="background:#E0E0E0; width:50%" |दशमलव | ||
अंक | |||
! style="background:#E0E0E0; width:50%" |टीबीसीडी<br />8 4 2 1 | ! style="background:#E0E0E0; width:50%" |टीबीसीडी<br />8 4 2 1 | ||
|- | |- | ||
Line 803: | Line 803: | ||
| 1 1 1 0 | | 1 1 1 0 | ||
|- | |- | ||
! style="background:#F0F0F0" | | ! style="background:#F0F0F0" |अंकों की विषम संख्या होने पर भराव के रूप में उपयोग किया जाता है | ||
| 1 1 1 1 | | 1 1 1 1 | ||
|} | |} | ||
उल्लिखित | उल्लिखित 3जीपीपी दस्तावेज़ टीबीसीडी-स्ट्रिंग को प्रत्येक बाइट में स्वैप किए गए निबल्स के साथ परिभाषित करता है। बिट्स, ऑक्टेट और अंक दाएं अंकों से 1 बिट्स और बाएं से ऑक्टेट से अनुक्रमित होते हैं। | ||
बिट्स 8765 ऑक्टेट n एन्कोडिंग अंक 2n | |||
बिट्स 4321 ऑक्टेट n एन्कोडिंग अंक 2 (n - 1) + 1 | |||
अर्थ संख्या <code>1234</code>, | अर्थ संख्या <code>1234</code>, टीबीसीडी में <code>21 43</code> बन जाएगी। | ||
== वैकल्पिक एनकोडिंग == | == वैकल्पिक एनकोडिंग == | ||
यदि प्रतिनिधित्व और संगणना में त्रुटियां प्रदर्शन से और रूपांतरण की गति से अधिक महत्वपूर्ण हैं, तो | यदि प्रतिनिधित्व और संगणना में त्रुटियां प्रदर्शन से और रूपांतरण की गति से अधिक महत्वपूर्ण हैं, तो स्केल किए गए बाइनरी प्रतिनिधित्व का उपयोग किया जा सकता है, जो दशमलव संख्या को बाइनरी-एन्कोडेड पूर्णांक और बाइनरी-एन्कोडेड हस्ताक्षरित दशमलव एक्सपोनेंट के रूप में संग्रहीत करता है। उदाहरण के लिए, 0.2 को 2{{e|-1}} के रूप में दर्शाया जा सकता है। | ||
यह प्रतिनिधित्व तेजी से गुणा और भाग की अनुमति देता है, लेकिन दशमलव बिंदुओं को संरेखित करने के लिए जोड़ और घटाव के | यह प्रतिनिधित्व तेजी से गुणा और भाग की अनुमति देता है, लेकिन दशमलव बिंदुओं को संरेखित करने के लिए जोड़ और घटाव के समय 10 की घात से स्थानांतरण की आवश्यकता हो सकती है। यह दशमलव स्थानों की निश्चित संख्या वाले अनुप्रयोगों के लिए उपयुक्त है, जिन्हें तब इस समायोजन की आवश्यकता नहीं होती है - विशेष रूप से वित्तीय अनुप्रयोग जहां दशमलव बिंदु के बाद 2 या 4 अंक सामान्यतः पर्याप्त होते हैं। वास्तविक में, यह लगभग [[निश्चित बिंदु अंकगणित]] का रूप है क्योंकि [[मूलांक बिंदु]] की स्थिति निहित है। | ||
[[हर्ट्ज़ एन्कोडिंग]] और चेन-हो एनकोडिंग तीन बीसीडी-एन्कोडेड अंकों के समूहों को 10-बिट मानों से परिवर्तित करने के लिए बूलियन रूपांतरण प्रदान करते हैं।<ref group="nb" name="Pseudo-tetrades"/>जिसे केवल 2 या 3 गेट विलंब के साथ हार्डवेयर में कुशलतापूर्वक एन्कोड किया जा सकता है। डेंसली पैक्ड डेसिमल ( | [[हर्ट्ज़ एन्कोडिंग]] और चेन-हो एनकोडिंग तीन बीसीडी-एन्कोडेड अंकों के समूहों को 10-बिट मानों से परिवर्तित करने के लिए बूलियन रूपांतरण प्रदान करते हैं।<ref group="nb" name="Pseudo-tetrades"/> जिसे केवल 2 या 3 गेट विलंब के साथ हार्डवेयर में कुशलतापूर्वक एन्कोड किया जा सकता है। डेंसली पैक्ड डेसिमल (डीपीडी) एक समान योजना है<ref group="nb" name="Pseudo-tetrades"/> इसका उपयोग [[IEEE 754-2008|आईईईई 754-2008]] फ़्लोटिंग-पॉइंट मानक में निर्दिष्ट दो वैकल्पिक दशमलव एन्कोडिंग के लिए, लीड अंक को छोड़कर अधिकांश [[महत्व]] के लिए किया जाता है। | ||
== आवेदन == | == आवेदन == | ||
कई व्यक्तिगत कंप्यूटरों में [[BIOS]] बीसीडी में दिनांक और समय को संग्रहीत करता है क्योंकि मूल [[IBM PC AT|आईबीएम | कई व्यक्तिगत कंप्यूटरों में [[BIOS|बायोस]] बीसीडी में दिनांक और समय को संग्रहीत करता है क्योंकि मूल [[IBM PC AT|आईबीएम पीसी एटी]] मदरबोर्ड में उपयोग की जाने वाली [[MC6818|एमसी6818]] रीयल-टाइम क्लॉक चिप बीसीडी में एन्कोडेड समय प्रदान करती है। यह प्रपत्र प्रदर्शन के लिए एएससीआईआई में आसानी से परिवर्तित हो जाता है।<ref name="Units_ENS"/><ref name="MC6818"/> | ||
फ्लोटिंग-पॉइंट एल्गोरिदम को | फ्लोटिंग-पॉइंट एल्गोरिदम को प्रायुक्त करने के लिए कंप्यूटर के [[अटारी 8-बिट परिवार]] ने बीसीडी का उपयोग किया था। [[एमओएस टेक्नोलॉजी 6502]] प्रोसेसर में बीसीडी मोड है जो जोड़ने और घटाने के निर्देशों को प्रभावित करता है। सायन ऑर्गनाइज़र हैंडहेल्ड कंप्यूटर के निर्माता द्वारा आपूर्ति किए गए सॉफ़्टवेयर ने फ़्लोटिंग पॉइंट को प्रायुक्त करने के लिए पूरी तरह से बीसीडी का उपयोग किया था; बाद के सायन मॉडल ने विशेष रूप से बाइनरी का उपयोग किया था। | ||
[[प्लेस्टेशन 3]] के | [[प्लेस्टेशन 3]] के प्रारंभिक मॉडल बीसीडी में तारीख और समय को स्टोर करते हैं। इसके कारण 1 मार्च 2010 को कंसोल का विश्वव्यापी आउटेज हो गया। वर्ष के अंतिम दो अंक बीसीडी [[समय स्वरूपण और भंडारण बग]] के रूप में 16 के रूप में संग्रहीत किए गए, जिससे यूनिट की तारीख में त्रुटि हुई, जिससे अधिकांश कार्य अक्षम हो गए। इसे [[वर्ष 2010 की समस्या]] के रूप में संदर्भित किया गया है। | ||
== कानूनी इतिहास == | == कानूनी इतिहास == | ||
1972 के | 1972 के स्थिति में गॉट्सचैक बनाम बेन्सन, यू.एस. सुप्रीम कोर्ट ने यूनाइटेड स्टेट्स कोर्ट ऑफ कस्टम्स एंड [[पेटेंट]] अपील्स के फैसले को पलट दिया, जिसने कंप्यूटर पर बीसीडी-एन्कोडेड नंबरों को बाइनरी में बदलने के लिए पेटेंट की अनुमति दी थी। निर्णय ने कहा कि पेटेंट गणितीय सूत्र को पूरी तरह से पूर्व-खाली करेगा और व्यावहारिक प्रभाव में [[कलन विधि]] पर ही पेटेंट होगा।<ref name="Gottschalk-Benson_1972"/> यह ऐतिहासिक निर्णय था जिसने सॉफ्टवेयर और एल्गोरिदम की पेटेंट क्षमता का निर्धारण किया था। | ||
== यह भी देखें == | == यह भी देखें == | ||
* द्वि-क्विनरी कोडित दशमलव | * द्वि-क्विनरी कोडित दशमलव | ||
* [[बाइनरी-कोडेड टर्नरी]] ( | * [[बाइनरी-कोडेड टर्नरी]] (बीसीटी) | ||
* [[बाइनरी पूर्णांक दशमलव]] (बीआईडी) | * [[बाइनरी पूर्णांक दशमलव]] (बीआईडी) | ||
* [[बिटमास्क]] | * [[बिटमास्क]] | ||
* चेन-हो एन्कोडिंग | * चेन-हो एन्कोडिंग | ||
* दशमलव कंप्यूटर | * दशमलव कंप्यूटर | ||
* घनी पैक दशमलव ( | * घनी पैक दशमलव (डीपीडी) | ||
* [[डबल डब्बल]], बाइनरी नंबरों को बीसीडी में बदलने के लिए | * [[डबल डब्बल]], बाइनरी नंबरों को बीसीडी में बदलने के लिए एल्गोरिथ्म | ||
* [[वर्ष 2000 की समस्या]] | * [[वर्ष 2000 की समस्या]] | ||
Line 941: | Line 940: | ||
* [https://github.com/c-rack/bcd4j BCD for Java] | * [https://github.com/c-rack/bcd4j BCD for Java] | ||
{{DEFAULTSORT:Binary-Coded Decimal}} | {{DEFAULTSORT:Binary-Coded Decimal}} | ||
[[Category: | [[Category:All accuracy disputes|Binary-Coded Decimal]] | ||
[[Category:Created On 28/01/2023]] | [[Category:All articles with dead external links]] | ||
[[Category:All articles with unsourced statements|Binary-Coded Decimal]] | |||
[[Category:Articles containing German-language text]] | |||
[[Category:Articles with dead external links from November 2016]] | |||
[[Category:Articles with disputed statements from November 2021|Binary-Coded Decimal]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page|Binary-Coded Decimal]] | |||
[[Category:Articles with invalid date parameter in template|Binary-Coded Decimal]] | |||
[[Category:Articles with permanently dead external links]] | |||
[[Category:Articles with unsourced statements from May 2011|Binary-Coded Decimal]] | |||
[[Category:CS1]] | |||
[[Category:CS1 Deutsch-language sources (de)]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:CS1 location test]] | |||
[[Category:CS1 maint]] | |||
[[Category:Created On 28/01/2023|Binary-Coded Decimal]] | |||
[[Category:Lua-based templates|Binary-Coded Decimal]] | |||
[[Category:Machine Translated Page|Binary-Coded Decimal]] | |||
[[Category:Missing redirects|Binary-Coded Decimal]] | |||
[[Category:Pages with script errors|Binary-Coded Decimal]] | |||
[[Category:Short description with empty Wikidata description|Binary-Coded Decimal]] | |||
[[Category:Templates Vigyan Ready|Binary-Coded Decimal]] | |||
[[Category:Templates that add a tracking category|Binary-Coded Decimal]] | |||
[[Category:Templates that generate short descriptions|Binary-Coded Decimal]] | |||
[[Category:Templates using TemplateData|Binary-Coded Decimal]] | |||
[[Category:अंक प्रणाली|Binary-Coded Decimal]] | |||
[[Category:उदाहरण सी कोड वाले लेख|Binary-Coded Decimal]] | |||
[[Category:कंप्यूटर अंकगणित|Binary-Coded Decimal]] | |||
[[Category:गैर-मानक स्थितीय अंक प्रणाली|Binary-Coded Decimal]] | |||
[[Category:बाइनरी अंकगणित|Binary-Coded Decimal]] |
Latest revision as of 17:07, 19 October 2023
कम्प्यूटिंग और इलेक्ट्रानिक्स प्रणाली में, बाइनरी-कोडेड दशमलव (बीसीडी) दशमलव संख्या के बाइनरी अंक प्रणाली एन्कोडिंग का वर्ग है जहां प्रत्येक संख्यात्मक अंक को निश्चित संख्या सामान्यतः 4 या 8 में बिट्स द्वारा दर्शाया जाता है। कभी-कभी, चिन्ह (गणित) या अन्य संकेतों (जैसे त्रुटि या अतिप्रवाह) के लिए विशेष बिट पैटर्न का उपयोग किया जाता है।
बाइट-ओरिएंटेड प्रणाली (अर्थात् अधिकांश आधुनिक कंप्यूटर) में, 'अनपैक्ड' बीसीडी शब्द[1] सामान्यतः प्रत्येक अंक के लिए पूर्ण बाइट का अर्थ होता है (अधिकांश संकेत सहित), जबकि पैक्ड बीसीडी सामान्यतः इस तथ्य का लाभ उठाते हुए बाइट के अन्दर दो अंकों को एनकोड करता है कि चार बिट 0 से 9 की सीमा का प्रतिनिधित्व करने के लिए पर्याप्त हैं। चूँकि, त्रुटिहीन 4-बिट एन्कोडिंग तकनीकी कारणों से भिन्न हो सकती है (उदाहरण के लिए अतिरिक्त -3)।
बीसीडी अंक का प्रतिनिधित्व करने वाले दस राज्यों को कभी-कभी टेट्राड (कंप्यूटिंग) कहा जाता है[2][3] (सामान्यतः उन्हें पकड़ने के लिए आवश्यक कुतरने के लिए टेट्राड के रूप में भी जाना जाता है) जबकि अप्रयुक्त, देखभाल न करें-राज्यों को छद्म-चतुर्भुज(ई)एस ,[4][5][6][7][8] छद्म दशमलव[3] या छद्म दशमलव अंक नाम दिए गए हैं।[9][10][nb 1]
बीसीडी का मुख्य गुण, बाइनरी स्थितीय प्रणाली की तुलना में, इसका अधिक त्रुटिहीन प्रतिनिधित्व और दशमलव मात्रा का गोलाई है, साथ ही पारंपरिक मानव-पठनीय प्रतिनिधित्व में रूपांतरण में आसानी है। मूलभूत अंकगणित के साथ-साथ थोड़ा कम सघन भंडारण को प्रायुक्त करने के लिए आवश्यक सर्किट की जटिलता में इसकी प्रमुख कमियां हैं।
बीसीडी का उपयोग कई प्रारंभिक दशमलव कंप्यूटरों में किया गया था, और इसे आईबीएम प्रणाली/360 श्रृंखला और इसके वंशजों, डिजिटल उपकरण निगम के वैक्स, द बरोज़ बी1700 और मोटोरोला 68000-श्रृंखला प्रोसेसर जैसी मशीनों के निर्देश सेट में प्रायुक्त किया गया है। बीसीडी अपने आप में पहले की तरह व्यापक रूप से उपयोग नहीं किया जाता है, और नए निर्देश सेटों में अनुपलब्ध या सीमित है (उदाहरण के लिए, एआरएम वास्तुकला परिवार; लंबे मोड में x86)। चूँकि, दशमलव फिक्स्ड-पॉइंट अंकगणित और दशमलव फ़्लोटिंग-पॉइंट प्रारूप अभी भी महत्वपूर्ण हैं और वित्तीय, वाणिज्यिक और औद्योगिक कंप्यूटिंग में उपयोग किए जाते हैं, जहाँ बाइनरी फ़्लोटिंग में सूक्ष्म रूपांतरण और आंशिक राउंड-ऑफ़ त्रुटि निहित है। बिंदु स्वरूपों को बर्दाश्त नहीं किया जा सकता है।[11]
पृष्ठभूमि
बीसीडी इस तथ्य का लाभ उठाता है कि किसी दशमलव अंक को चार-बिट पैटर्न द्वारा दर्शाया जा सकता है। अंकों को एनकोड करने का सबसे स्पष्ट विधि प्राकृतिक बीसीडी (एनबीसीडी) है, जहां प्रत्येक दशमलव अंक को इसके संबंधित चार-बिट बाइनरी मान द्वारा दर्शाया जाता है, जैसा कि निम्न तालिका में दिखाया गया है। इसे 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 |
इस योजना को साधारण बाइनरी-कोडेड दशमलव (एसबीसीडी) या बीसीडी 8421 के रूप में भी संदर्भित किया जा सकता है, और यह सबसे साधारण एन्कोडिंग है।[12] अन्य में तथाकथित 4221 और 7421 एन्कोडिंग सम्मिलित हैं - जो बिट्स और "एक्सेस -3" के लिए उपयोग किए जाने वाले भार के नाम पर हैं।[13] उदाहरण के लिए, बीसीडी अंक 6,8421 अंकन में 0110'b
, 4221 में 1100'b
(दो एनकोडिंग संभव हैं) है, 7421 में 0110'b
, जबकि एक्सेस-3 में 1001'b
() है.
बिट | भार | 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][nb 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][nb 3] | |||||||
एक्सेस-3 (एक्सएस-3) | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | [14][15][16][17][nb 2] | |
एक्सेस-6 (एक्सएस-6) | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [18][nb 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][nb 4] | |||||||
4 2 2 1 (I) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [16][17] | |||||||
4 2 2 1 (II) | 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 | 7 | 6 | 4 | 5 | 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] | |||||||
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] | |||||||
पेथरिक (आरएई) | 1 | 3 | 2 | 0 | 4 | 8 | 6 | 7 | 9 | 5 | [30][31][nb 5] | |||||||
ओ'ब्रायन I (वाट) | 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] | |||||||
टॉम्पकिंस I | 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] | |||||||
ओ'ब्रायन II | 0 | 2 | 1 | 4 | 3 | 9 | 7 | 8 | 5 | 6 | [32][14][16][17] | |||||||
टॉमपकिंस II | 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] | |
6 3 −2 −1 (I) | 3 | 2 | 1 | 0 | 5 | 4 | 8 | 9 | 7 | 6 | [29][36] | |||||||
6 3 −2 −1 (II) | 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] | |
कौट्ज़ I | 0 | 2 | 5 | 1 | 3 | 7 | 9 | 8 | 6 | 4 | [18] | |||||||
कौट्ज़ II | 9 | 4 | 1 | 3 | 2 | 8 | 6 | 7 | 0 | 5 | [18][14] | |||||||
सस्किन्ड I | 0 | 1 | 4 | 3 | 2 | 9 | 8 | 5 | 6 | 7 | [35] | |||||||
सस्किन्ड II | 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 तक दशमलव अंकों का प्रतिनिधित्व करती है। शीर्षलेखों में,8421
प्रत्येक बिट के वजन को निरुपित करता है। पांचवें कॉलम में (बीसीडी 84−2-1), दो भार ऋणात्मक हैं। अंकों के लिए एएससीआईआई और ईबीसीडीआईसी दोनों वर्ण कोड, जो ज़ोन बीसीडी के उदाहरण हैं, भी दिखाए गए हैं।
अंक | बीसीडी 8421 |
स्टिबिट्ज़कोड या अतिरिक्त-3 | ऐकेन-कोड या बीसीडी 2421 |
बीसीडी 84−2−1 |
आईबीएम 702, आईबीएम 705, आईबीएम 7080, आईबीएम 1401 8421 |
एएससीII 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-बिट बाइट्स में डेटा से निपटते हैं, बीसीडी संख्या को एन्कोड करने के लिए निम्न विधियों का उपयोग करना संभव है:
- अनपैक्ड: प्रत्येक दशमलव अंक को बाइट में एन्कोड किया जाता है, जिसमें चार बिट्स संख्या का प्रतिनिधित्व करते हैं और शेष बिट्स का कोई महत्व नहीं होता है।
- पैक किया गया: दो दशमलव अंक बाइट में एन्कोड किए गए हैं, जिसमें अंक कम से कम महत्वपूर्ण निबल (बिट नंबरिंग सबसे- बनाम सबसे कम-महत्वपूर्ण बिट पहले) और दूसरा अंक सबसे महत्वपूर्ण निबल (बिट्स 4 से 7) में है।[nb 8]
उदाहरण के लिये, दशमलव संख्या को एन्कोड करना 91
दो बाइट्स के निम्नलिखित बाइनरी पैटर्न में अनपैक्ड बीसीडी परिणामों का उपयोग करना:
Decimal: 9 1
Binary : 0000 1001 0000 0001
पैक किए गए बीसीडी में, वही संख्या बाइट में फिट होगी:
Decimal: 9 1
Binary: 1001 0001
इसलिए अनपैक्ड बीसीडी बाइट के लिए संख्यात्मक सीमा शून्य से नौ समावेशी है, जबकि पैक बीसीडी बाइट की सीमा 0 से 9 समावेशी है।
बाइट की सीमा से बड़ी संख्या का प्रतिनिधित्व करने के लिए किसी भी सन्निहित बाइट्स का उपयोग किया जा सकता है। उदाहरण के लिए, दशमलव संख्या का प्रतिनिधित्व करने के लिए 12345
पैक बीसीडी में, बड़े एंडियन प्रारूप का उपयोग करते हुए, प्रोग्राम निम्नानुसार एन्कोड करेगा:
Decimal: 0 1 2 3 4 5
Binary : 0000 0001 0010 0011 0100 0101
यहां, सबसे महत्वपूर्ण बाइट के सबसे महत्वपूर्ण निबल को शून्य के रूप में एन्कोड किया गया है, इसलिए 012345
संख्या को इस प्रकार संग्रहीत किया जाता है (लेकिन स्वरूपण रूटीन प्रमुख शून्यों को बदल या हटा सकते हैं)। पैक्ड बीसीडी अनपैक्ड बीसीडी की तुलना में भंडारण उपयोग में अधिक कुशल है; अनपैक्ड फॉर्मेट में एक ही नंबर (अग्रणी शून्य के साथ) को एन्कोडिंग करने से दो बार स्टोरेज की खपत होगी।
तार्किक पारी और मुखौटा (कंप्यूटिंग) संचालन का उपयोग पैक किए गए बीसीडी अंक को पैक या अनपैक करने के लिए किया जाता है। अन्य बिटवाइज़ ऑपरेशन का उपयोग किसी अंक को उसके समतुल्य बिट पैटर्न में बदलने या प्रक्रिया को उल्टा करने के लिए किया जाता है।
पैक बीसीडी
पैक बीसीडी में (या बस पैक दशमलव[38]), प्रत्येक बाइट के दो निबल्स में से प्रत्येक दशमलव अंक का प्रतिनिधित्व करता है।[nb 8] पैक्ड बीसीडी कम से कम 1960 के दशक से उपयोग में है और तब से सभी आईबीएम मेनफ्रेम हार्डवेयर में प्रायुक्त किया गया है। अधिकांश कार्यान्वयन बड़े एंडियन होते हैं, अर्थात् प्रत्येक बाइट के ऊपरी आधे हिस्से में अधिक महत्वपूर्ण अंक के साथ, और सबसे बाएं बाइट (सबसे कम मेमोरी एड्रेस पर रहने वाले) के साथ पैक किए गए दशमलव मान के सबसे महत्वपूर्ण अंक होते हैं। सबसे दाहिने बाइट के निचले निबल को सामान्यतः साइन फ्लैग के रूप में उपयोग किया जाता है, चूंकि कुछ अहस्ताक्षरित अभ्यावेदन में साइन फ्लैग की कमी होती है। उदाहरण के रूप में, 4-बाइट मान में 8 निबल्स होते हैं, जिसमें ऊपरी 7 निबल्स 7-अंकीय दशमलव मान के अंकों को संग्रहीत करते हैं, और सबसे कम निबल दशमलव पूर्णांक मान के चिह्न को निरुपित करता है।
सकारात्मक (+) के लिए मानक चिह्न मान 1100 (हेक्साडेसिमल सी) और ऋणात्मक (-) के लिए 1101 (डी) हैं। यह सम्मेलन ईबीसीडीआईसी वर्णों और हस्ताक्षरित ओवरपंच प्रतिनिधित्व के लिए ज़ोन फ़ील्ड से आता है। अन्य अनुमत संकेत सकारात्मक के लिए 1010 (ए) और 1110 (ई) और नकारात्मक के लिए 1011 (बी) हैं। आईबीएम प्रणाली/360 प्रोसेसर 1010 (ए) और 1011 (बी) संकेतों का उपयोग करेंगे यदि एएससीआईआई -8 मानक के लिए पीएसडब्ल्यू में ए बिट सेट किया गया है जो कभी पारित नहीं हुआ। अधिकांश कार्यान्वयन 1111 (एफ) के साइन निबल के साथ अहस्ताक्षरित बीसीडी मान भी प्रदान करते हैं।[39][40][41] आईएलई आरपीजी सकारात्मक के लिए 1111 (एफ) और नकारात्मक के लिए 1101 (डी) का उपयोग करता है।[42] ये अंकों के लिए बिना साइन ओवरपंच के ईबीसीडीआईसी क्षेत्र से मेल खाते हैं। पैक्ड बीसीडी में, संख्या 127 को 0001 0010 0111 1100 (127C) और -127 को 0001 0010 0111 1101 (127D) द्वारा दर्शाया जाता है। बरोज़ प्रणाली ने नकारात्मक के लिए 1101 (डी) का उपयोग किया, और किसी भी अन्य मान को सकारात्मक संकेत मान माना जाता है (प्रोसेसर 1100 (सी) के लिए सकारात्मक संकेत को सामान्य करेगा)।
संकेत
अंक |
बीसीडी 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 बाइट्स के शब्द में (2n)-1 दशमलव अंक तक हो सकते हैं, जो हमेशा अंकों की विषम संख्या होती है। डी अंकों के साथ दशमलव संख्या के लिए स्टोरेज स्पेस के 1/2(d+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 तक मानों का प्रतिनिधित्व कर सकता है।
जबकि पैक्ड बीसीडी भंडारण का इष्टतम उपयोग नहीं करता है (समान संख्याओं को संग्रहीत करने के लिए बाइनरी नोटेशन की तुलना में लगभग 20% अधिक मेमोरी का उपयोग करके), एएससीआईआई, ईबीसीडीआईसी, या यूनिकोड के विभिन्न एन्कोडिंग में रूपांतरण तुच्छ बना दिया जाता है, क्योंकि किसी अंकगणितीय संचालन की आवश्यकता नहीं होती है। अतिरिक्त भंडारण आवश्यकताओं को सामान्यतः कैलकुलेटर या हाथ की गणना के साथ शुद्धता और संगतता की आवश्यकता से ऑफसेट किया जाता है जो निश्चित-बिंदु दशमलव अंकगणितीय प्रदान करता है। बीसीडी (कैरेक्टर एन्कोडिंग) के सघन पैकिंग उपस्थित हैं जो भंडारण दंड से बचते हैं और सामान्य रूपांतरणों के लिए अंकगणितीय संचालन की भी आवश्यकता नहीं होती है।
पैक्ड बीसीडी कोबोल प्रोग्रामिंग भाषा में कम्प्यूटेशनल-3 (कई अन्य कंपाइलर विक्रेताओं द्वारा अपनाया गया आईबीएम एक्सटेंशन) या पैक्ड-दशमलव (1985 कोबोल मानक का हिस्सा) डेटा प्रकार के रूप में समर्थित है। यह PL/I में निश्चित दशमलव के रूप में समर्थित है। आईबीएम प्रणाली/360 और बाद में संगत मेनफ्रेम के अतिरिक्त, पैक्ड बीसीडी डिजिटल उपकरण निगम और एसडीएस सिग्मा श्रृंखला मेनफ्रेम के कुछ मॉडलों के मूल वैक्स प्रोसेसर के मूल निर्देश सेट में प्रायुक्त किया गया है, और मेनफ्रेम (1950 के दशक के बरोज़ 205 से निकली) के बरोज़ कॉर्पोरेशन मीडियम प्रणाली्स के लिए मूल प्रारूप है।
नकारात्मक संख्याओं के लिए दस का पूरक निरूपण पैक्ड (और अन्य) बीसीडी संख्याओं के संकेत को एन्कोडिंग के लिए वैकल्पिक दृष्टिकोण प्रदान करता है। इस स्थिति में, धनात्मक संख्याओं में हमेशा 0 और 4 (सम्मिलित) के बीच सबसे महत्वपूर्ण अंक होता है, जबकि ऋणात्मक संख्याओं को संगत धनात्मक संख्या के 10 के पूरक द्वारा दर्शाया जाता है। नतीजतन, यह प्रणाली 32-बिट पैक्ड बीसीडी नंबरों को -50,000,000 से +49,999,999 तक की सीमा के लिए अनुमति देती है, और -1 को 99999999 के रूप में दर्शाया गया है। (दो पूरक बाइनरी संख्याओं के साथ, सीमा शून्य के बारे में सममित नहीं है।)
फिक्स्ड-पॉइंट पैक्ड दशमलव
निश्चित-बिंदु दशमलव संख्या कुछ प्रोग्रामिंग भाषाओं (जैसे कोबोल और PL/I) द्वारा समर्थित हैं। ये भाषाएँ प्रोग्रामर को अंकों में से किसी के सामने अंतर्निहित दशमलव बिंदु निर्दिष्ट करने की अनुमति देती हैं। उदाहरण के लिए, बाइट्स 12 34 56 7C के साथ एन्कोड किया गया पैक्ड दशमलव मान निश्चित-बिंदु मान +1,234.567 का प्रतिनिधित्व करता है जब निहित दशमलव बिंदु चौथे और पांचवें अंकों के बीच स्थित होता है:
12 34 56 7C
12 34.56 7+
दशमलव बिंदु वास्तविक में मेमोरी में संग्रहीत नहीं होता है, क्योंकि पैक्ड बीसीडी स्टोरेज प्रारूप इसके लिए प्रदान नहीं करता है। इसका स्थान केवल संकलक के लिए जाना जाता है, और उत्पन्न कोड विभिन्न अंकगणितीय कार्यों के अनुसार कार्य करता है।
उच्च-घनत्व एनकोडिंग
यदि दशमलव अंक के लिए चार बिट्स की आवश्यकता होती है, तो तीन दशमलव अंकों के लिए 12 बिट्स की आवश्यकता होती है। चूँकि, 210 के बाद से (1,024) 103 से बड़ा है (1,000), यदि तीन दशमलव अंक एक साथ एन्कोड किए जाते हैं, तो केवल 10 बिट की आवश्यकता होती है। इस तरह के दो एनकोडिंग चेन-हो एनकोडिंग और सघन रूप से भरा हुआ दशमलव (डीपीडी) हैं। उत्तरार्द्ध का लाभ यह है कि एन्कोडिंग के सबसेट नियमित बीसीडी के रूप में इष्टतम सात बिट्स में दो अंकों और चार बिट्स में अंक को एन्कोड करते हैं।
ज़ोनड दशमलव
कुछ कार्यान्वयन, उदाहरण के लिए आईबीएम मेनफ्रेम प्रणाली, ज़ोन्ड डेसीमल न्यूमेरिक रिप्रेजेंटेशन का समर्थन करते हैं। प्रत्येक दशमलव अंक को बाइट में संग्रहीत किया जाता है, जिसमें निचले चार बिट्स बीसीडी फॉर्म में अंक को कूटबद्ध करते हैं। ऊपरी चार बिट्स, जिन्हें ज़ोन बिट्स कहा जाता है, सामान्यतः निश्चित मान पर सेट होते हैं जिससे बाइट अंकों के अनुरूप वर्ण मान रखे। ईबीसीडीआईसी प्रणाली 1111 (हेक्स एफ) के क्षेत्र मान का उपयोग करते हैं; यह F0 से F9 (हेक्स) की सीमा में बाइट्स उत्पन्न करता है, जो 0 से 9 वर्णों के लिए ईबीसीडीआईसी कोड हैं। इसी तरह, एएससीआईआई प्रणाली 0011 (हेक्स 3) के ज़ोन मान का उपयोग करते हैं, जो वर्ण कोड 30 से 39 (हेक्स) देते हैं।
हस्ताक्षरित ज़ोन वाले दशमलव मानों के लिए, सबसे दाहिना (कम से कम महत्वपूर्ण) ज़ोन निबल साइन अंक रखता है, जो मानों का ही सेट है जो हस्ताक्षरित पैक्ड दशमलव संख्याओं के लिए उपयोग किया जाता है (ऊपर देखें)। इस प्रकार हेक्स बाइट्स F1 F2 D3 के रूप में एन्कोडेड ज़ोनड दशमलव मान हस्ताक्षरित दशमलव मान -123 का प्रतिनिधित्व करता है:
F1 F2 D3
1 2 −3
ईबीसीडीआईसी ज़ोन वाली दशमलव रूपांतरण तालिका
बीसीडी अंक | हेक्साडेसिमल | ईबीसीडीआईसी अक्षर | ||||||
---|---|---|---|---|---|---|---|---|
0+ | C0 | A0 | E0 | F0 | { (*) | \ (*) | 0 | |
1+ | C1 | A1 | E1 | F1 | A | ~ (*) | 1 | |
2+ | C2 | A2 | E2 | F2 | B | s | S | 2 |
3+ | C3 | A3 | E3 | F3 | C | t | T | 3 |
4+ | C4 | A4 | E4 | F4 | D | u | U | 4 |
5+ | C5 | A5 | E5 | F5 | E | v | V | 5 |
6+ | C6 | A6 | E6 | F6 | F | w | W | 6 |
7+ | C7 | A7 | E7 | F7 | G | x | X | 7 |
8+ | C8 | A8 | E8 | F8 | H | y | Y | 8 |
9+ | C9 | A9 | E9 | F9 | I | z | Z | 9 |
0− | D0 | B0 | } (*) | ^ (*) | ||||
1− | D1 | B1 | J | |||||
2− | D2 | B2 | K | |||||
3- | D3 | B3 | L | |||||
4− | D4 | B4 | M | |||||
5− | D5 | B5 | N | |||||
6− | D6 | B6 | O | |||||
7− | D7 | B7 | P | |||||
8- | D8 | B8 | Q | |||||
9− | D9 | B9 | R |
(*) नोट: ये वर्ण स्थानीय वर्ण कोड पृष्ठ सेटिंग के आधार पर भिन्न होते हैं।
फिक्स्ड-पॉइंट ज़ोनड दशमलव
कुछ भाषाएँ (जैसे कोबोल और PL/I) निश्चित-बिंदु ज़ोन वाले दशमलव मानों का सीधे समर्थन करती हैं, किसी संख्या के दशमलव अंकों के बीच किसी स्थान पर अंतर्निहित दशमलव बिंदु निर्दिष्ट करती हैं। उदाहरण के लिए, चौथे अंक के दाईं ओर अंतर्निहित दशमलव बिंदु के साथ छह-बाइट हस्ताक्षरित ज़ोनड दशमलव मान दिया गया है, हेक्स बाइट्स F1 F2 F7 F9 F5 C0 मान +1,279.50 का प्रतिनिधित्व करता है:
F1 F2 F7 F9 F5 C0 1 2 7 9. 5 +0
कंप्यूटर में बीसीडी
आईबीएम
आईबीएम ने 6-बिट अल्फ़ान्यूमेरिक कोड के लिए बाइनरी-कोडेड दशमलव इंटरचेंज कोड (बीसीडीआईसी, जिसे कभी-कभी सिर्फ बीसीडी कहा जाता है) का उपयोग किया, जो संख्याओं, अपर-केस अक्षरों और विशेष वर्णों का प्रतिनिधित्व करता था। आईबीएम 1620 (1959 में प्रारंभ), आईबीएम 1400 श्रृंखला, और गैर-आईबीएम 700/7000 श्रृंखला के गैर-दशमलव आर्किटेक्चर सदस्यों सहित अधिकांश प्रारंभिक आईबीएम कंप्यूटरों में बीसीडीआईसी अल्फ़ामेरिक्स की कुछ भिन्नता का उपयोग किया जाता है।
आईबीएम 1400 श्रृंखला चरित्र-पता योग्य मशीनें हैं, प्रत्येक स्थान पर B, A, 8, 4, 2 और 1 लेबल वाले छह बिट्स हैं, साथ ही विषम समानता जांच बिट (C) और शब्द चिह्न बिट (M)। एन्कोडिंग अंक 1 से 9 के लिए, B और ए शून्य हैं और अंकों का मान मानक 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), स्मृति में (बी,8,2,1) के रूप में एन्कोड किया गया था। यह सर्किट्री को केवल कुछ विशेष स्थिति के साथ पंच कार्ड प्रारूप और आंतरिक भंडारण प्रारूप के बीच परिवर्तित करने की अनुमति देता है। महत्वपूर्ण विशेष स्थिति अंक 0 है, जो कार्ड में अकेला 0 पंच और कोर मेमोरी में (8,2) द्वारा दर्शाया गया है।[43]
आईबीएम 1620 की मेमोरी को 6-बिट एड्रेसेबल अंकों में व्यवस्थित किया जाता है, सामान्य 8, 4, 2, 1 प्लस एफ, फ्लैग बिट के रूप में उपयोग किया जाता है और सी विषम समता जांच बिट है। बीसीडी अल्फ़ामेरिक्स को अंक जोड़े का उपयोग करके एन्कोड किया गया है, और सम-संबोधित अंक में ज़ोन के साथ और विषम-पता वाले अंक में अंक, ज़ोन 12, 11, और 0 ज़ोन पंच से संबंधित है जैसा कि 1400 श्रृंखला में है। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया।
डेसीमल आर्किटेक्चर में आईबीएम 7070, आईबीएम 7072, और आईबीएम 7074 अल्फ़ामेरिक्स को 10 अंकों वाले शब्द के डिजिट जोड़े (अंकों में पांच में से दो कोड का उपयोग करके, 'नहीं' बीसीडी) का उपयोग करके एन्कोड किया गया है, ज़ोन में बाएँ अंक और दाएँ अंक में अंक। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया।
प्रणाली/360 के प्रारंभ के साथ, आईबीएम ने 6-बिट बीसीडी अल्फ़ामेरिक्स को 8-बिट ईबीसीडीआईसी तक विस्तारित किया, जिससे कई और वर्णों (जैसे, लोअरकेस अक्षर) को जोड़ा जा सके। चर लंबाई पैक बीसीडी संख्यात्मक डेटा प्रकार भी प्रायुक्त किया गया है, जो मशीन निर्देश प्रदान करता है जो सीधे पैक किए गए दशमलव डेटा पर अंकगणित करता है।
आईबीएम 1130 और आईबीएम 1800 पर, पैक्ड बीसीडी आईबीएम के वाणिज्यिक सबरूटीन पैकेज द्वारा सॉफ्टवेयर में समर्थित है।
आज, आईबीएम प्रोसेसर और डेटाबेस, जैसे आईबीएम डीबी2, मेनफ्रेम और शक्ति6 में बीसीडी डेटा का अभी भी भारी उपयोग किया जाता है। इन उत्पादों में, बीसीडी सामान्यतः बीसीडी (ईबीसीडीआईसी या एएससीआईआई के रूप में), पैक्ड बीसीडी (दो दशमलव अंक प्रति बाइट), या शुद्ध बीसीडी एन्कोडिंग (प्रत्येक बाइट के कम चार बिट्स में बीसीडी के रूप में संग्रहीत दशमलव अंक) होता है। इन सभी का उपयोग हार्डवेयर रजिस्टरों और प्रसंस्करण इकाइयों और सॉफ्टवेयर में किया जाता है। ईबीसीडीआईसी टेबल अनलोड में पैक किए गए दशमलव को पढ़ने योग्य संख्या में बदलने के लिए, आप जेसीएल यूटिलिटी द्फ्सोर्ट के आउटरेक फील्ड्स मास्क का उपयोग कर सकते हैं।[44]
अन्य कंप्यूटर
डिजिटल उपकरण निगम वीएएक्स-11 श्रृंखला में निर्देश सेट सम्मिलित है जो सीधे पैक किए गए बीसीडी डेटा पर अंकगणित कर सकता है और पैक किए गए बीसीडी डेटा और अन्य पूर्णांक प्रस्तुतियों के बीच परिवर्तित कर सकता है।[41] वीएएक्स का पैक्ड बीसीडी प्रारूप आईबीएम प्रणाली/360 और आईबीएम के बाद के संगत प्रोसेसर के साथ संगत है। माइक्रोवीएएक्स और बाद में वीएएक्स कार्यान्वयन ने इस क्षमता को CPU से हटा दिया लेकिन ऑपरेटिंग प्रणाली द्वारा आपूर्ति की गई सॉफ़्टवेयर लाइब्रेरी में लापता निर्देशों को प्रायुक्त करके पहले की मशीनों के साथ कोड संगतता बनाए रखी। निष्क्रिय निर्देशों का सामना होने पर इसे अपवाद प्रबंधन के माध्यम से स्वचालित रूप से प्रायुक्त किया जाता है, जिससे उनका उपयोग करने वाले प्रोग्राम नई मशीनों पर बिना किसी संशोधन के निष्पादित हो सकें।
इंटेल x86 आर्किटेक्चर इंटेल बीसीडी ओपकोड अद्वितीय 18-अंकीय (दस-बाइट) बीसीडी प्रारूप का समर्थन करता है जिसे फ़्लोटिंग पॉइंट रजिस्टरों में लोड और संग्रहीत किया जा सकता है, जहाँ से संगणना की जा सकती है।[45]
मोटोरोला 68000 श्रृंखला में बीसीडी निर्देश थे।[46]
नवीन कंप्यूटरों में सीपीयू के निर्देश सेट के अतिरिक्त ऐसी क्षमताओं को लगभग हमेशा सॉफ्टवेयर में प्रायुक्त किया जाता है, लेकिन व्यावसायिक और वित्तीय अनुप्रयोगों में बीसीडी न्यूमेरिक डेटा अभी भी बहुत साधारण है। शब्द-समानांतर तर्क और बाइनरी अंकगणितीय संचालन के अनुक्रमों को समझने में कठिन लेकिन कठिन का उपयोग करके पैक्ड बीसीडी और ज़ोनड दशमलव ऐड-या-घटाना संचालन को प्रायुक्त करने के लिए तरकीबें हैं।[47] उदाहरण के लिए, निम्नलिखित कोड (सी (प्रोग्रामिंग भाषा) में लिखा गया है) 32-बिट बाइनरी ऑपरेशंस का उपयोग करके हस्ताक्षरित 8-अंकीय पैक बीसीडी जोड़ की गणना करता है:
uint32_t BCDadd(uint32_t a, uint32_t b)
{
uint32_t t1, t2; // unsigned 32-bit intermediate values
t1 = a + 0x06666666;
t2 = t1 ^ b; // sum without carry propagation
t1 = t1 + b; // provisional sum
t2 = t1 ^ t2; // all the binary carry bits
t2 = ~t2 & 0x11111110; // just the BCD carry bits
t2 = (t2 >> 2) | (t2 >> 3); // correction
return t1 - t2; // corrected BCD sum
}
इलेक्ट्रॉनिक्स में बीसीडी
बीसीडी इलेक्ट्रॉनिक प्रणालियों में बहुत साधारण है जहां संख्यात्मक मान प्रदर्शित किया जाना है, विशेष रूप से केवल डिजिटल लॉजिक वाले प्रणाली में, और माइक्रोप्रोसेसर नहीं है। बीसीडी को नियोजित करके, प्रत्येक अंक को अलग एकल उप-सर्किट के रूप में मानकर प्रदर्शित करने के लिए संख्यात्मक डेटा के हेरफेर को बहुत सरल बनाया जा सकता है। यह डिस्प्ले हार्डवेयर की भौतिक वास्तविकता से अधिक निकटता से मेल खाता है - उदाहरण के लिए, डिज़ाइनर मीटरिंग सर्किट बनाने के लिए अलग-अलग समान सात-खंड डिस्प्ले की श्रृंखला का उपयोग करना चुन सकता है। यदि संख्यात्मक मात्रा को शुद्ध बाइनरी के रूप में संग्रहीत और हेरफेर किया गया था, तो इस तरह के डिस्प्ले के साथ इंटरफेस करने के लिए जटिल सर्किट्री की आवश्यकता होगी। इसलिए, ऐसे स्थिति में जहां गणना अपेक्षाकृत सरल होती है, बीसीडी के साथ काम करने से बाइनरी में परिवर्तित करने की तुलना में समग्र सरल प्रणाली हो सकती है। अधिकांश पॉकेट कैलकुलेटर अपनी सभी गणना बीसीडी में करते हैं।
यही तर्क तब प्रायुक्त होता है जब इस प्रकार का हार्डवेयर एम्बेडेड माइक्रोकंट्रोलर या अन्य छोटे प्रोसेसर का उपयोग करता है। अधिकांश, बीसीडी प्रारूप में आंतरिक रूप से संख्याओं का प्रतिनिधित्व करने के परिणामस्वरूप छोटे कोड होते हैं, क्योंकि इस तरह के सीमित प्रोसेसर पर बाइनरी प्रतिनिधित्व से रूपांतरण महंगा हो सकता है। इन अनुप्रयोगों के लिए, कुछ छोटे प्रोसेसर में समर्पित अंकगणितीय मोड होते हैं, जो बीसीडी मात्रा में हेरफेर करने वाले रूटीन लिखते समय सहायता करते हैं।[48][49]
बीसीडी के साथ संचालन
जोड़
पहले बाइनरी में जोड़कर और बाद में बीसीडी में परिवर्तित करके अतिरिक्त प्रदर्शन करना संभव है। दो अंकों के सरल योग का रूपांतरण 6 जोड़कर किया जा सकता है (अर्थात, 16 - 10) जब अंकों की जोड़ी को जोड़ने के पांच-बिट परिणाम का मान 9 से अधिक हो। 6 जोड़ने का कारण यह है 16 संभावित 4-बिट बीसीडी मान हैं (24 के बाद से = 16), लेकिन केवल 10 मान मान्य हैं (0000 से 1001)। उदाहरण के लिए:
1001 + 1000 = 10001 9 + 8 = 17
10001 बाइनरी है, दशमलव नहीं, वांछित परिणाम का प्रतिनिधित्व, लेकिन सबसे महत्वपूर्ण 1 (कैरी) 4-बिट बाइनरी नंबर में फिट नहीं हो सकता है। बीसीडी में दशमलव के रूप में, प्रति अंक 9 (1001) से अधिक मान उपस्थित नहीं हो सकता है। इसे ठीक करने के लिए, कुल में 6 (0110) जोड़ा जाता है, और फिर परिणाम को दो निबल्स के रूप में माना जाता है:
10001 + 0110 = 00010111 => 0001 0111 17 + 6 = 23 1 7
परिणाम के दो निबल्स, 0001 और 0111, अंक 1 और 7 के अनुरूप हैं। यह बीसीडी में 17 देता है, जो सही परिणाम है।
इस तकनीक को दाएं से बाएं समूहों में जोड़कर कई अंकों को जोड़ने के लिए बढ़ाया जा सकता है, दूसरे अंक को कैरी के रूप में प्रचारित किया जा सकता है, हमेशा प्रत्येक अंक-जोड़ी के 5-बिट परिणाम की तुलना 9 से की जाती है। कुछ सीपीयू एक आधा ले जाने वाला झंडा प्रदान करते हैं। द्विआधारी जोड़ और घटाव संचालन के बाद बीसीडी अंकगणितीय समायोजन की सुविधा के लिए। इंटेल 8080, ज़िलोग जेड80[50] और x86 परिवार के सीपीयू[51] ओपकोड डीएए (दशमलव समायोजन संचायक) प्रदान करें।
घटाव
घटाव घटाव के दहाई के पूरक को घटाकर किया जाता है। बीसीडी में किसी संख्या के चिह्न का प्रतिनिधित्व करने के लिए, संख्या 0000 का उपयोग सकारात्मक संख्या का प्रतिनिधित्व करने के लिए किया जाता है, और 1001 का उपयोग ऋणात्मक संख्या का प्रतिनिधित्व करने के लिए किया जाता है। शेष 14 संयोजन अमान्य चिह्न हैं। हस्ताक्षरित बीसीडी घटाव को समझाने के लिए, निम्नलिखित समस्या 357 - 432 पर विचार करें:
हस्ताक्षरित बीसीडी में, 357 0000 0011 0101 0111 है। 432 का दस का पूरक 432 के नौ के पूरक को लेकर और फिर एक जोड़कर प्राप्त किया जा सकता है। तो, 999 - 432 = 567, और 567 + 1 = 568 होगा। बीसीडी में 568 से पहले नकारात्मक चिह्न कोड द्वारा, संख्या -432 का प्रतिनिधित्व किया जा सकता है। तो, हस्ताक्षरित बीसीडी में -432 1001 0101 0110 1000 है।
अब जब दोनों नंबरों को हस्ताक्षरित बीसीडी में दर्शाया गया है, तो उन्हें एक साथ जोड़ा जा सकता है:
0000 0011 0101 0111
0 3 5 7
+ 1001 0101 0110 1000
9 5 6 8
= 1001 1000 1011 1111
9 8 11 15
चूंकि बीसीडी दशमलव प्रतिनिधित्व का रूप है, ऊपर दिए गए कई अंक अमान्य हैं। इस घटना में अमान्य प्रविष्टि (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 का परिणाम ऋणात्मक संख्या में होना चाहिए। शेष निबल्स बीसीडी हैं, इसलिए 1001 0010 0101 925 है। 925 का दस का पूरक 1000 - 925 = 75 है, इसलिए परिकलित उत्तर -75 है।
यदि अलग-अलग संख्या में निबल्स एक साथ जोड़े जा रहे हैं (जैसे कि 1053 − 2), कम अंकों वाली संख्या को दहाई का पूरक लेने या घटाने से पहले पहले शून्य के साथ जोड़ा जाना चाहिए। इसलिए, 1053 − 2 के साथ, 2 को पहले बीसीडी में 0002 के रूप में प्रदर्शित करना होगा, और 0002 के दहाई के पूरक की गणना करनी होगी।
शुद्ध बाइनरी के साथ तुलना
लाभ
- कई गैर-अभिन्न मान, जैसे दशमलव 0.2, बाइनरी (.001100110011...) में अनंत स्थान-मान प्रतिनिधित्व करते हैं, लेकिन बाइनरी-कोडेड दशमलव (0.0010) में परिमित स्थान-मान होता है। नतीजतन, दशमलव अंशों के द्विआधारी-कोडित दशमलव निरूपण पर आधारित प्रणाली ऐसे मानों का प्रतिनिधित्व करने और गणना करने में त्रुटियों से बचती है। यह वित्तीय गणना में उपयोगी है।
- 10 की घात से स्केल करना आसान है।
- दशमलव अंक सीमा पर पूर्णांक बनाना सरल है। दशमलव में जोड़ और घटाव को गोल करने की आवश्यकता नहीं है।[dubious ]
- दो दशमलव संख्याओं का संरेखण (उदाहरण के लिए 1.3 + 27.08) सरल, त्रुटिहीन बदलाव है।
- वर्ण रूप में या प्रदर्शन के लिए रूपांतरण (उदाहरण के लिए, एक्सएमएल जैसे टेक्स्ट-आधारित प्रारूप में, या सात-सेगमेंट डिस्प्ले के लिए सिग्नल ड्राइव करने के लिए) साधारण प्रति-अंकीय मैपिंग है, और इसे रैखिक (O(n)) समय (बड़े-बड़े) में किया जा सकता है। शुद्ध बाइनरी अंक प्रणाली से रूपांतरण में अपेक्षाकृत जटिल तर्क सम्मिलित होता है जो अंकों को फैलाता है, और बड़ी संख्या के लिए, कोई रैखिक-समय रूपांतरण एल्गोरिदम ज्ञात नहीं है (देखें बाइनरी संख्या प्रणाली § अन्य अंक प्रणालियों में और से रूपांतरण).
हानि
- कुछ ऑपरेशन प्रायुक्त करने के लिए अधिक जटिल हैं। ऐडर (इलेक्ट्रॉनिक्स) को अतिरिक्त तर्क की आवश्यकता होती है जिससे वे लपेट सकें और जल्दी कैरी कर सकें। बीसीडी ऐड के लिए प्योर बाइनरी की तुलना में 15 से 20 फीसदी अधिक सर्किट्री की जरूरत होती है।[citation needed] गुणन के लिए एल्गोरिदम के उपयोग की आवश्यकता होती है जो शिफ्ट-मास्क-ऐड ( बाइनरी अंक प्रणाली गुणा, बाइनरी शिफ्ट की आवश्यकता होती है और समकक्ष, प्रति-अंक या अंकों के समूह की आवश्यकता होती है) की तुलना में कुछ अधिक जटिल होती है।
- मानक बीसीडी को चार बिट्स प्रति अंक की आवश्यकता होती है, बाइनरी एन्कोडिंग की तुलना में लगभग 20 प्रतिशत अधिक स्थान (log2 करने के लिए 4 बिट्स का अनुपात) 10 बिट 1.204 है)। जब पैक किया जाता है जिससे तीन अंकों को दस बिट्स में एन्कोड किया जा सके, स्टोरेज ओवरहेड बहुत कम हो जाता है, एन्कोडिंग की मूल्य पर जो वर्तमान हार्डवेयर पर 8-बिट बाइट सीमाओं के साथ असंरेखित है, जिसके परिणामस्वरूप इन प्रणालियों पर धीमी गति से कार्यान्वयन होता है।
- बीसीडी के व्यावहारिक वर्तमान कार्यान्वयन सामान्यतः देशी बीसीडी संचालन के लिए सीमित प्रोसेसर समर्थन के कारण, विशेष रूप से एम्बेडेड प्रणाली पर बाइनरी प्रस्तुतियों पर संचालन की तुलना में धीमे होते हैं।[52]
प्रतिनिधिक रूपांतर
विभिन्न बीसीडी कार्यान्वयन उपस्थित हैं जो संख्याओं के लिए अन्य अभ्यावेदन नियोजित करते हैं। टेक्सस उपकरण, हेवलेट पैकर्ड और अन्य द्वारा निर्मित प्रोग्राम करने योग्य कैलकुलेटर सामान्यतः एक्सपोनेंट के लिए दो या तीन अंकों के साथ फ्लोटिंग-पॉइंट बीसीडी प्रारूप को नियोजित करते हैं। साइन डिजिट के अतिरिक्त बिट्स का उपयोग विशेष संख्यात्मक मानों जैसे अनंत, अंडरफ्लो/ओवरफ्लो और एरर (ब्लिंकिंग डिस्प्ले) को निरुपित करने के लिए किया जा सकता है।, जैसे कि अनंत, अंकगणितीय अंतर्प्रवाह/अंकगणितीय अतिप्रवाह, और परिभाषित और अपरिभाषित (निमिष प्रदर्शन)।
हस्ताक्षरित विविधताएं
हस्ताक्षरित दशमलव मानों को कई विधियों से दर्शाया जा सकता है। कोबोल प्रोग्रामिंग भाषा, उदाहरण के लिए, पाँच ज़ोन वाले दशमलव स्वरूपों का समर्थन करती है, प्रत्येक अलग विधियों से संख्यात्मक चिह्न को कूटबद्ध करता है:
प्रकार | विवरण | उदाहरण |
---|---|---|
अहस्ताक्षरित | नो साइन निब्बल | F1 F2 F3
|
हस्ताक्षरित अनुगामी (कैनोनिकल प्रारूप) | अंतिम (कम से कम महत्वपूर्ण) बाइट में साइन इन करें | F1 F2 C3
|
हस्ताक्षरित अग्रणी (ओवरपंच) | पहले (सबसे महत्वपूर्ण) बाइट में साइन इन करें | C1 F2 F3
|
अनुगामी अलग हस्ताक्षर किए | डिजिट बाइट्स के बाद साइन कैरेक्टर बाइट ('+' या '−') अलग करें | F1 F2 F3 2B
|
हस्ताक्षर किए अग्रणी अलग | डिजिट बाइट से पहले साइन कैरेक्टर बाइट ('+' या '-') अलग करें | 2B F1 F2 F3
|
टेलीफोनी बाइनरी-कोडेड दशमलव (टीबीसीडी)
3जीपीपी ने टीबीसीडी का विकास किया था,[53] और बीसीडी का विस्तार जहां विशिष्ट टेलीफ़ोनी वर्णों को जोड़ने के लिए शेष (अप्रयुक्त) बिट संयोजनों का उपयोग किया जाता है,[54][55] जिसमें टेलीफोन कीपैड के मूल डिज़ाइन में पाए जाने वाले अंक समान होते हैं।
दशमलव
अंक |
टीबीसीडी 8 4 2 1 |
---|---|
* | 1 0 1 0 |
# | 1 0 1 1 |
a | 1 1 0 0 |
b | 1 1 0 1 |
c | 1 1 1 0 |
अंकों की विषम संख्या होने पर भराव के रूप में उपयोग किया जाता है | 1 1 1 1 |
उल्लिखित 3जीपीपी दस्तावेज़ टीबीसीडी-स्ट्रिंग को प्रत्येक बाइट में स्वैप किए गए निबल्स के साथ परिभाषित करता है। बिट्स, ऑक्टेट और अंक दाएं अंकों से 1 बिट्स और बाएं से ऑक्टेट से अनुक्रमित होते हैं।
बिट्स 8765 ऑक्टेट n एन्कोडिंग अंक 2n
बिट्स 4321 ऑक्टेट n एन्कोडिंग अंक 2 (n - 1) + 1
अर्थ संख्या 1234
, टीबीसीडी में 21 43
बन जाएगी।
वैकल्पिक एनकोडिंग
यदि प्रतिनिधित्व और संगणना में त्रुटियां प्रदर्शन से और रूपांतरण की गति से अधिक महत्वपूर्ण हैं, तो स्केल किए गए बाइनरी प्रतिनिधित्व का उपयोग किया जा सकता है, जो दशमलव संख्या को बाइनरी-एन्कोडेड पूर्णांक और बाइनरी-एन्कोडेड हस्ताक्षरित दशमलव एक्सपोनेंट के रूप में संग्रहीत करता है। उदाहरण के लिए, 0.2 को 2×10−1 के रूप में दर्शाया जा सकता है।
यह प्रतिनिधित्व तेजी से गुणा और भाग की अनुमति देता है, लेकिन दशमलव बिंदुओं को संरेखित करने के लिए जोड़ और घटाव के समय 10 की घात से स्थानांतरण की आवश्यकता हो सकती है। यह दशमलव स्थानों की निश्चित संख्या वाले अनुप्रयोगों के लिए उपयुक्त है, जिन्हें तब इस समायोजन की आवश्यकता नहीं होती है - विशेष रूप से वित्तीय अनुप्रयोग जहां दशमलव बिंदु के बाद 2 या 4 अंक सामान्यतः पर्याप्त होते हैं। वास्तविक में, यह लगभग निश्चित बिंदु अंकगणित का रूप है क्योंकि मूलांक बिंदु की स्थिति निहित है।
हर्ट्ज़ एन्कोडिंग और चेन-हो एनकोडिंग तीन बीसीडी-एन्कोडेड अंकों के समूहों को 10-बिट मानों से परिवर्तित करने के लिए बूलियन रूपांतरण प्रदान करते हैं।[nb 1] जिसे केवल 2 या 3 गेट विलंब के साथ हार्डवेयर में कुशलतापूर्वक एन्कोड किया जा सकता है। डेंसली पैक्ड डेसिमल (डीपीडी) एक समान योजना है[nb 1] इसका उपयोग आईईईई 754-2008 फ़्लोटिंग-पॉइंट मानक में निर्दिष्ट दो वैकल्पिक दशमलव एन्कोडिंग के लिए, लीड अंक को छोड़कर अधिकांश महत्व के लिए किया जाता है।
आवेदन
कई व्यक्तिगत कंप्यूटरों में बायोस बीसीडी में दिनांक और समय को संग्रहीत करता है क्योंकि मूल आईबीएम पीसी एटी मदरबोर्ड में उपयोग की जाने वाली एमसी6818 रीयल-टाइम क्लॉक चिप बीसीडी में एन्कोडेड समय प्रदान करती है। यह प्रपत्र प्रदर्शन के लिए एएससीआईआई में आसानी से परिवर्तित हो जाता है।[56][57]
फ्लोटिंग-पॉइंट एल्गोरिदम को प्रायुक्त करने के लिए कंप्यूटर के अटारी 8-बिट परिवार ने बीसीडी का उपयोग किया था। एमओएस टेक्नोलॉजी 6502 प्रोसेसर में बीसीडी मोड है जो जोड़ने और घटाने के निर्देशों को प्रभावित करता है। सायन ऑर्गनाइज़र हैंडहेल्ड कंप्यूटर के निर्माता द्वारा आपूर्ति किए गए सॉफ़्टवेयर ने फ़्लोटिंग पॉइंट को प्रायुक्त करने के लिए पूरी तरह से बीसीडी का उपयोग किया था; बाद के सायन मॉडल ने विशेष रूप से बाइनरी का उपयोग किया था।
प्लेस्टेशन 3 के प्रारंभिक मॉडल बीसीडी में तारीख और समय को स्टोर करते हैं। इसके कारण 1 मार्च 2010 को कंसोल का विश्वव्यापी आउटेज हो गया। वर्ष के अंतिम दो अंक बीसीडी समय स्वरूपण और भंडारण बग के रूप में 16 के रूप में संग्रहीत किए गए, जिससे यूनिट की तारीख में त्रुटि हुई, जिससे अधिकांश कार्य अक्षम हो गए। इसे वर्ष 2010 की समस्या के रूप में संदर्भित किया गया है।
कानूनी इतिहास
1972 के स्थिति में गॉट्सचैक बनाम बेन्सन, यू.एस. सुप्रीम कोर्ट ने यूनाइटेड स्टेट्स कोर्ट ऑफ कस्टम्स एंड पेटेंट अपील्स के फैसले को पलट दिया, जिसने कंप्यूटर पर बीसीडी-एन्कोडेड नंबरों को बाइनरी में बदलने के लिए पेटेंट की अनुमति दी थी। निर्णय ने कहा कि पेटेंट गणितीय सूत्र को पूरी तरह से पूर्व-खाली करेगा और व्यावहारिक प्रभाव में कलन विधि पर ही पेटेंट होगा।[58] यह ऐतिहासिक निर्णय था जिसने सॉफ्टवेयर और एल्गोरिदम की पेटेंट क्षमता का निर्धारण किया था।
यह भी देखें
- द्वि-क्विनरी कोडित दशमलव
- बाइनरी-कोडेड टर्नरी (बीसीटी)
- बाइनरी पूर्णांक दशमलव (बीआईडी)
- बिटमास्क
- चेन-हो एन्कोडिंग
- दशमलव कंप्यूटर
- घनी पैक दशमलव (डीपीडी)
- डबल डब्बल, बाइनरी नंबरों को बीसीडी में बदलने के लिए एल्गोरिथ्म
- वर्ष 2000 की समस्या
टिप्पणियाँ
- ↑ 1.0 1.1 1.2 In a standard packed 4-bit representation, there are 16 states (four bits for each digit) with 10 tetrades and 6 pseudo-tetrades, whereas in more densely packed schemes such as Hertz, Chen–Ho or DPD encodings there are fewer—e.g., only 24 unused states in 1024 states (10 bits for three digits).
- ↑ 2.0 2.1 2.2 2.3 2.4 Code states (shown in black) outside the decimal range 0–9 indicate additional states of the non-BCD variant of the code. In the BCD code variant discussed here, they are pseudo-tetrades.
- ↑ The Aiken code is one of several 2 4 2 1 codes. It is also known as 2* 4 2 1 code.
- ↑ The Jump-at-8 code is also known as unsymmetrical 2 4 2 1 code.
- ↑ The Petherick code is also known as Royal Aircraft Establishment (RAE) code.
- ↑ The O'Brien code type I is also known as Watts code or Watts reflected decimal (WRD) code.
- ↑ The Excess-3 Gray code is also known as Gray–Stibitz code.
- ↑ 8.0 8.1 In a similar fashion, multiple characters were often packed into machine words on minicomputers, see IBM SQUOZE and DEC RADIX 50.
संदर्भ
- ↑ Intel. "ia32 architecture manual" (PDF). Intel. Archived (PDF) from the original on 2022-10-09. Retrieved 2015-07-01.
- ↑ 2.0 2.1 Klar, Rainer (1970-02-01). "1.5.3 Konvertierung binär verschlüsselter Dezimalzahlen" [1.5.3 Conversion of binary coded decimal numbers]. Digitale Rechenautomaten – Eine Einführung [Digital Computers – An Introduction]. Sammlung Göschen (in Deutsch). Vol. 1241/1241a (1 ed.). Berlin, Germany: Walter de Gruyter & Co. / G. J. Göschen'sche Verlagsbuchhandlung . pp. 17, 21. ISBN 3-11-083160-0. . Archiv-Nr. 7990709. Archived from the original on 2020-04-18. Retrieved 2020-04-13. (205 pages) (NB. A 2019 reprint of the first edition is available under ISBN 3-11002793-3, 978-3-11002793-8. A reworked and expanded 4th edition exists as well.)
- ↑ 3.0 3.1 3.2 Klar, Rainer (1989) [1988-10-01]. "1.4 Codes: Binär verschlüsselte Dezimalzahlen" [1.4 Codes: Binary coded decimal numbers]. Digitale Rechenautomaten – Eine Einführung in die Struktur von Computerhardware [Digital Computers – An Introduction into the structure of computer hardware]. Sammlung Göschen (in Deutsch). Vol. 2050 (4th reworked ed.). Berlin, Germany: Walter de Gruyter & Co. pp. 25, 28, 38–39. ISBN 3-11011700-2. p. 25:
[…] Die nicht erlaubten 0/1-Muster nennt man auch Pseudodezimalen. […]
(320 pages) - ↑ Schneider, Hans-Jochen (1986). Lexikon der Informatik und Datenverarbeitung (in Deutsch) (2 ed.). R. Oldenbourg Verlag München Wien. ISBN 3-486-22662-2.
- ↑ Tafel, Hans Jörg (1971). Einführung in die digitale Datenverarbeitung [Introduction to digital information processing] (in Deutsch). Munich: Carl Hanser Verlag. ISBN 3-446-10569-7.
- ↑ Steinbuch, Karl W.; Weber, Wolfgang; Heinemann, Traute, eds. (1974) [1967]. Taschenbuch der Informatik - Band II - Struktur und Programmierung von EDV-Systemen. ISBN 3-540-06241-6. LCCN 73-80607.
{{cite book}}
:|work=
ignored (help) - ↑ Tietze, Ulrich; Schenk, Christoph (2012-12-06). Advanced Electronic Circuits. Springer Science & Business Media. ISBN 978-3642812415. 9783642812415. Retrieved 2015-08-05.
- ↑ 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. Retrieved 2015-08-05.
- ↑ Ferretti, Vittorio (2013-03-13). Wörterbuch der Elektronik, Datentechnik und Telekommunikation / Dictionary of Electronics, Computing and Telecommunications: Teil 1: Deutsch-Englisch / Part 1: German-English. Vol. 1 (2 ed.). Springer-Verlag. ISBN 978-3642980886. 9783642980886. Retrieved 2015-08-05.
- ↑ Speiser, Ambrosius Paul (1965) [1961]. Digitale Rechenanlagen - Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit [Digital computers - Basics / Circuits / Operation / Reliability] (in Deutsch) (2 ed.). ETH Zürich, Zürich, Switzerland: Springer-Verlag / IBM. p. 209. LCCN 65-14624. 0978.
- ↑ Cowlishaw, Mike F. (2015) [1981, 2008]. "General Decimal Arithmetic". Retrieved 2016-01-02.
- ↑ Evans, David Silvester (March 1961). "Chapter Four: Ancillary Equipment: Output-drive and parity-check relays for digitizers". Digital Data: Their derivation and reduction for analysis and process control (1 ed.). London, UK: Hilger & Watts Ltd / Interscience Publishers. pp. 46–64 [56–57]. Retrieved 2020-05-24. (8+82 pages) (NB. The 4-bit 8421 BCD code with an extra parity bit applied as least significant bit to achieve odd parity of the resulting 5-bit code is also known as Ferranti code.)
- ↑ Lala, Parag K. (2007). Principles of Modern Digital Design. John Wiley & Sons. pp. 20–25. ISBN 978-0-470-07296-7.
- ↑ 14.00 14.01 14.02 14.03 14.04 14.05 14.06 14.07 14.08 14.09 14.10 14.11 14.12 14.13 Berger, Erich R. (1962). "1.3.3. Die Codierung von Zahlen". Written at Karlsruhe, Germany. In Steinbuch, Karl W. (ed.). Taschenbuch der Nachrichtenverarbeitung (in Deutsch) (1 ed.). Berlin / Göttingen / New York: Springer-Verlag OHG. pp. 68–75. LCCN 62-14511. (NB. The shown Kautz code (II), containing all eight available binary states with an odd count of 1s, is a slight modification of the original Kautz code (I), containing all eight states with an even count of 1s, so that inversion of the most-significant bits will create a 9s complement.)
- ↑ 15.0 15.1 15.2 15.3 15.4 15.5 Kämmerer, Wilhelm [in Deutsch] (May 1969). "II.15. Struktur: Informationsdarstellung im Automaten". Written at Jena, Germany. In Frühauf, Hans [in Deutsch]; Kämmerer, Wilhelm; Schröder, Kurz; Winkler, Helmut (eds.). Digitale Automaten – Theorie, Struktur, Technik, Programmieren. Elektronisches Rechnen und Regeln (in Deutsch). Vol. 5 (1 ed.). Berlin, Germany: Akademie-Verlag GmbH. p. 161. License no. 202-100/416/69. Order no. 4666 ES 20 K 3. (NB. A second edition 1973 exists as well.)
- ↑ 16.00 16.01 16.02 16.03 16.04 16.05 16.06 16.07 16.08 16.09 16.10 16.11 16.12 16.13 16.14 16.15 16.16 Dokter, Folkert; Steinhauer, Jürgen (1973-06-18). Digital Electronics. Philips Technical Library (PTL) / Macmillan Education (Reprint of 1st English ed.). Eindhoven, Netherlands: The Macmillan Press Ltd. / N. V. Philips' Gloeilampenfabrieken. doi:10.1007/978-1-349-01417-0. ISBN 978-1-349-01419-4. SBN 333-13360-9. Retrieved 2020-05-11. (270 pages) (NB. This is based on a translation of volume I of the two-volume German edition.)
- ↑ 17.00 17.01 17.02 17.03 17.04 17.05 17.06 17.07 17.08 17.09 17.10 17.11 17.12 17.13 17.14 17.15 17.16 Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik. Philips Fachbücher (in Deutsch). Vol. I (improved and extended 5th ed.). Hamburg, Germany: Deutsche Philips GmbH. p. 50. ISBN 3-87145-272-6. (xii+327+3 pages) (NB. The German edition of volume I was published in 1969, 1971, two editions in 1972, and 1975. Volume II was published in 1970, 1972, 1973, and 1975.)
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 Kautz, William H. (June 1954). "IV. Examples A. Binary Codes for Decimals, n = 4". Optimized Data Encoding for Digital Computers. pp. 47–57 [49, 51–52, 57]. Archived from the original on 2020-07-03. Retrieved 2020-07-03. p. 52:
[…] The last column [of Table II], labeled "Best," gives the maximum fraction possible with any code—namely 0.60—half again better than any conventional code. This extremal is reached with the ten [heavily-marked vertices of the graph of Fig. 4 for n = 4, or, in fact, with any set of ten code combinations which include all eight with an even (or all eight with an odd) number of "1's." The second and third rows of Table II list the average and peak decimal change per undetected single binary error, and have been derived using the equations of Sec. II for Δ1 and δ1. The confusion index for decimals using the criterion of "decimal change," is taken to be cij = |i − j| i,j = 0, 1, … 9. Again, the "Best" arrangement possible (the same for average and peak), one of which is shown in Fig. 4, is substantially better than the conventional codes. […] Fig. 4 Minimum-confusion code for decimals. […] δ1=2 Δ1=15 […]
{{cite book}}
:|journal=
ignored (help) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] (11 pages) (NB. Besides the combinatorial set of 4-bit BCD "minimum-confusion codes for decimals", of which the author illustrates only one explicitly (here reproduced as code I) in form of a 4-bit graph, the author also shows a 16-state 4-bit "binary code for analog data" in form of a code table, which, however, is not discussed here. The code II shown here is a modification of code I discussed by Berger.) - ↑ 19.0 19.1 19.2 Chinal, Jean P. (January 1973). "3.3. Unit Distance Codes". Written at Paris, France. Design Methods for Digital Systems (in English). 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. License No. 202-100/542/73. Order No. 7617470(6047) ES 19 B 1 / 20 K 3. Retrieved 2020-06-21. (xviii+506 pages) (NB. The French 1967 original book was named "Techniques Booléennes et Calculateurs Arithmétiques", published by Éditions Dunod .)
- ↑ 20.0 20.1 Military Handbook: Encoders - Shaft Angle To Digital (PDF). United States Department of Defense. 1991-09-30. MIL-HDBK-231A. Archived (PDF) from the original on 2020-07-25. Retrieved 2020-07-25. (NB. Supersedes MIL-HDBK-231(AS) (1970-07-01).)
- ↑ 21.0 21.1 Stopper, Herbert (March 1960). Written at Litzelstetten, Germany. Runge, Wilhelm Tolmé (ed.). "Ermittlung des Codes und der logischen Schaltung einer Zähldekade". Telefunken-Zeitung (TZ) - Technisch-Wissenschaftliche Mitteilungen der Telefunken GMBH (in Deutsch). Berlin, Germany: Telefunken. 33 (127): 13–19. (7 pages)
- ↑ 22.0 22.1 Borucki, Lorenz; Dittmann, Joachim (1971) [July 1970, 1966, Autumn 1965]. "2.3 Gebräuchliche Codes in der digitalen Meßtechnik". Written at Krefeld / Karlsruhe, Germany. Digitale Meßtechnik: Eine Einführung (in Deutsch) (2 ed.). Berlin / Heidelberg, Germany: Springer-Verlag. pp. 10–23 [12–14]. doi:10.1007/978-3-642-80560-8. ISBN 3-540-05058-2. LCCN 75-131547. ISBN 978-3-642-80561-5. (viii+252 pages) 1st edition
- ↑ White, Garland S. (October 1953). "Coded Decimal Number Systems for Digital Computers". Proceedings of the Institute of Radio Engineers. Institute of Radio Engineers (IRE). 41 (10): 1450–1452. doi:10.1109/JRPROC.1953.274330. eISSN 2162-6634. ISSN 0096-8390. S2CID 51674710. (3 pages)
- ↑ "Different Types of Binary Codes". Electronic Hub. 2019-05-01 [2015-01-28]. Section 2.4 5211 Code. Archived from the original on 2017-11-14. Retrieved 2020-08-04.
{{cite web}}
:|archive-date=
/|archive-url=
timestamp mismatch (help) - ↑ Paul, Matthias R. (1995-08-10) [1994]. "Unterbrechungsfreier Schleifencode" [Continuous loop code]. 1.02 (in Deutsch). Retrieved 2008-02-11. (NB. The author called this code Schleifencode (English: "loop code"). It differs from Gray BCD code only in the encoding of state 0 to make it a cyclic unit-distance code for full-circle rotatory applications. Avoiding the all-zero code pattern allows for loop self-testing and to use the data lines for uninterrupted power distribution.)
- ↑ Gray, Frank (1953-03-17) [1947-11-13]. Pulse Code Communication (PDF). New York, USA: Bell Telephone Laboratories, Incorporated. U.S. Patent 2,632,058. Serial No. 785697. Archived (PDF) from the original on 2020-08-05. Retrieved 2020-08-05. (13 pages)
- ↑ Glixon, Harry Robert (March 1957). "Can You Take Advantage of the Cyclic Binary-Decimal Code?". Control Engineering. Technical Publishing Company, a division of Dun-Donnelley Publishing Corporation, Dun & Bradstreet Corp. 4 (3): 87–91. ISSN 0010-8049. (5 pages)
- ↑ 28.0 28.1 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. Additional Topics". Digital Computer and Control Engineering (PDF). McGraw-Hill Electrical and Electronic Engineering Series (1 ed.). New York, USA: McGraw-Hill Book Company, Inc. (printer: The Maple Press Company, York, Pennsylvania, USA). pp. 517–518. ISBN 0-07036981-X. ISSN 2574-7916. LCCN 59015055. OCLC 1033638267. OL 5776493M. SBN 07036981-X. . ark:/13960/t72v3b312. Archived (PDF) from the original on 2021-02-19. Retrieved 2021-02-19. p. 517:
[…] The cyclic code is advantageous mainly in the use of relay circuits, for then a sticky relay will not give a false state as it is delayed in going from one cyclic number to the next. There are many other cyclic codes that have this property. […]
[12] (xxiv+835+1 pages) (NB. Ledley classified the described cyclic code as a cyclic decimal-coded binary code.) - ↑ 29.0 29.1 29.2 29.3 Savard, John J. G. (2018) [2006]. "Decimal Representations". quadibloc. Archived from the original on 2018-07-16. Retrieved 2018-07-16.
- ↑ Petherick, Edward John (October 1953). A Cyclic Progressive Binary-coded-decimal System of Representing Numbers (Technical Note MS15). Farnborough, UK: Royal Aircraft Establishment (RAE). (4 pages) (NB. Sometimes referred to as A Cyclic-Coded Binary-Coded-Decimal System of Representing Numbers.)
- ↑ Petherick, Edward John; Hopkins, A. J. (1958). Some Recently Developed Digital Devices for Encoding the Rotations of Shafts (Technical Note MS21). Farnborough, UK: Royal Aircraft Establishment (RAE).
- ↑ 32.0 32.1 O'Brien, Joseph A. (May 1956) [1955-11-15, 1955-06-23]. "Cyclic Decimal Codes for Analogue to Digital Converters". Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics. Bell Telephone Laboratories, Whippany, New Jersey, USA. 75 (2): 120–122. doi:10.1109/TCE.1956.6372498. ISSN 0097-2452. S2CID 51657314. Paper 56-21. Retrieved 2020-05-18. (3 pages) (NB. This paper was prepared for presentation at the AIEE Winter General Meeting, New York, USA, 1956-01-30 to 1956-02-03.)
- ↑ 33.0 33.1 Tompkins, Howard E. (September 1956) [1956-07-16]. "Unit-Distance Binary-Decimal Codes for Two-Track Commutation". IRE Transactions on Electronic Computers. Correspondence. Moore School of Electrical Engineering, University of Pennsylvania, Philadelphia, Pennsylvania, USA. EC-5 (3): 139. doi:10.1109/TEC.1956.5219934. ISSN 0367-9950. Retrieved 2020-05-18. (1 page)
- ↑ Lippel, Bernhard (December 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. (2 pages)
- ↑ 35.0 35.1 35.2 Susskind, Alfred Kriss; Ward, John Erwin (1958-03-28) [1957, 1956]. "III.F. Unit-Distance Codes / VI.E.2. Reflected Binary Codes". Written at Cambridge, Massachusetts, USA. In Susskind, Alfred Kriss (ed.). Notes on Analog-Digital Conversion Techniques. Technology Books in Science and Engineering. Vol. 1 (3 ed.). New York, USA: Technology Press of the Massachusetts Institute of Technology / John Wiley & Sons, Inc. / Chapman & Hall, Ltd. pp. 3-7–3-8 [3-7], 3-10–3-16 [3-13–3-16], 6-65–6-60 [6-60]. (x+416+2 pages) (NB. The contents of the book was originally prepared by staff members of the Servomechanisms Laboraratory, Department of Electrical Engineering, MIT, for Special Summer Programs held in 1956 and 1957. The code Susskind actually presented in his work as "reading-type code" is shown as code type II here, whereas the type I code is a minor derivation with the two most significant bit columns swapped to better illustrate symmetries.)
- ↑ 36.0 36.1 Yuen, Chun-Kwong (December 1977). "A New Representation for Decimal Numbers". IEEE Transactions on Computers. C-26 (12): 1286–1288. doi:10.1109/TC.1977.1674792. S2CID 40879271. Archived from the original on 2020-08-08. Retrieved 2020-08-08.
- ↑ Lucal, Harold M. (December 1959). "Arithmetic Operations for Digital Computers Using a Modified Reflected Binary". IRE Transactions on Electronic Computers. EC-8 (4): 449–458. doi:10.1109/TEC.1959.5222057. ISSN 0367-9950. S2CID 206673385. (10 pages)
- ↑ Dewar, Robert Berriedale Keith; Smosna, Matthew (1990). Microprocessors - A Programmer's View (1 ed.). Courant Institute, New York University, New York, USA: McGraw-Hill Publishing Company. p. 14. ISBN 0-07-016638-2. LCCN 89-77320. (xviii+462 pages)
- ↑ "Chapter 8: Decimal Instructions". IBM System/370 Principles of Operation. IBM. March 1980.
- ↑ "Chapter 3: Data Representation". PDP-11 Architecture Handbook. Digital Equipment Corporation. 1983.
- ↑ 41.0 41.1 VAX-11 Architecture Handbook. Digital Equipment Corporation. 1985.
- ↑ "ILE RPG Reference".
- ↑ IBM BM 1401/1440/1460/1410/7010 Character Code Chart in BCD Order[permanent dead link]
- ↑ http://publib.boulder.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.iceg200%2Fenf.htm[permanent dead link]
- ↑ "4.7 BCD and packed BCD integers". Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 1: Basic Architecture (PDF). Version 072. Vol. 1. Intel Corporation. 2020-05-27 [1997]. pp. 3–2, 4-9–4-11 [4-10]. 253665-072US. Archived (PDF) from the original on 2020-08-06. Retrieved 2020-08-06. p. 4-10:
[…] When operating on BCD integers in general-purpose registers, the BCD values can be unpacked (one BCD digit per byte) or packed (two BCD digits per byte). The value of an unpacked BCD integer is the binary value of the low halfbyte (bits 0 through 3). The high half-byte (bits 4 through 7) can be any value during addition and subtraction, but must be zero during multiplication and division. Packed BCD integers allow two BCD digits to be contained in one byte. Here, the digit in the high half-byte is more significant than the digit in the low half-byte. […] When operating on BCD integers in x87 FPU data registers, BCD values are packed in an 80-bit format and referred to as decimal integers. In this format, the first 9 bytes hold 18 BCD digits, 2 digits per byte. The least-significant digit is contained in the lower half-byte of byte 0 and the most-significant digit is contained in the upper half-byte of byte 9. The most significant bit of byte 10 contains the sign bit (0 = positive and 1 = negative; bits 0 through 6 of byte 10 are don't care bits). Negative decimal integers are not stored in two's complement form; they are distinguished from positive decimal integers only by the sign bit. The range of decimal integers that can be encoded in this format is −1018 + 1 to 1018 − 1. The decimal integer format exists in memory only. When a decimal integer is loaded in an x87 FPU data register, it is automatically converted to the double-extended-precision floating-point format. All decimal integers are exactly representable in double extended-precision format. […]
[13] - ↑ url=http://www.tigernt.com/onlineDoc/68000.pdf
- ↑ Jones, Douglas W. (2015-11-25) [1999]. "BCD Arithmetic, a tutorial". Arithmetic Tutorials. Iowa City, Iowa, USA: The University of Iowa, Department of Computer Science. Retrieved 2016-01-03.
- ↑ University of Alicante. "A Cordic-based Architecture for High Performance Decimal Calculations" (PDF). IEEE. Archived (PDF) from the original on 2010-01-05. Retrieved 2015-08-15.
- ↑ "Decimal CORDIC Rotation based on Selection by Rounding: Algorithm and Architecture" (PDF). British Computer Society. Archived (PDF) from the original on 2022-10-09. Retrieved 2015-08-14.
- ↑ Zaks, Rodnay (1982). Programming the Z80 (3rd revised ed.). Sybex Inc. p. 108. ISBN 0-89588-094-6. LCCN 80-5468. ark:/13960/t4qk4vs4c. Retrieved 2022-01-08. (NB. The Zilog Z80 DAA instructions differs in subtle details from the Intel 8080 DAA instruction.)
- ↑ Cloutier, Félix, ed. (2019-05-30). "DAA — Decimal Adjust AL after Addition". Archived from the original on 2022-01-16. Retrieved 2022-01-16. (NB. Based on Intel 64 and IA-32 Architectures Software Developer's Manual.)
- ↑ Mathur, Aditya P. (1989). Introduction to Microprocessors (3 ed.). Tata McGraw-Hill Publishing Company Limited. ISBN 978-0-07-460222-5.
- ↑ 3GPP TS 29.002: Mobile Application Part (MAP) specification (Technical report). 2013. sec. 17.7.8 Common data types.
- ↑ "Signalling Protocols and Switching (SPS) Guidelines for using Abstract Syntax Notation One (ASN.1) in telecommunication application protocols" (PDF). p. 15. Archived (PDF) from the original on 2013-12-04.
- ↑ "XOM Mobile Application Part (XMAP) Specification" (PDF). p. 93. Archived from the original (PDF) on 2015-02-21. Retrieved 2013-06-27.
- ↑ "Archived copy" (PDF). www.se.ecu.edu.au. Archived from the original (PDF) on 10 October 2008. Retrieved 22 May 2022.
{{cite web}}
: CS1 maint: archived copy as title (link) - ↑ MC6818 datasheet
- ↑ Gottschalk v. Benson, 409 U.S. 63, 72 (1972).
आगे की पढाई
- Mackenzie, Charles E. (1980). Coded Character Sets, History and Development. p. xii. ISBN 0-201-14460-3. LCCN 77-90165. Retrieved 2016-05-22.
{{cite book}}
:|work=
ignored (help) [14] - Richards, Richard Kohler (1955). Arithmetic Operations in Digital Computers. New York, USA: van Nostrand. pp. 397–.
- Schmid, Hermann (1974). Decimal Computation (1 ed.). Binghamton, New York, USA: John Wiley & Sons. ISBN 0-471-76180-X. and Schmid, Hermann (1983) [1974]. Decimal Computation (1 (reprint) ed.). Malabar, Florida, USA: Robert E. Krieger Publishing Company. ISBN 0-89874-318-4. (NB. At least some batches of the Krieger reprint edition were misprints with defective pages 115–146.)
- Massalin, Henry (October 1987). Katz, Randy (ed.). "Superoptimizer: A Look at the Smallest Program" (PDF). Proceedings of the Second International Conference on Architectural Support for Programming Languages and Operating Systems ACM SIGOPS Operating Systems Review. 21 (4): 122–126. doi:10.1145/36204.36194. ISBN 0-8186-0805-6. Archived (PDF) from the original on 2017-07-04. Retrieved 2012-04-25. (Also: ACM SIGPLAN Notices, Vol. 22 #10, IEEE Computer Society Press #87CH2440-6, October 1987)
- "GNU Superoptimizer". HP-UX.
- Shirazi, Behrooz; Yun, David Y. Y.; Zhang, Chang N. (March 1988). VLSI designs for redundant binary-coded decimal addition. IEEE Seventh Annual International Phoenix Conference on Computers and Communications, 1988. IEEE. pp. 52–56.
- Brown; Vranesic (2003). Fundamentals of Digital Logic.
- Thapliyal, Himanshu; Arabnia, Hamid R. (November 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. pp. 64–69. ISBN 1-60132-009-4.
- Kaivani, A.; Alhosseini, A. Zaker; Gorgin, S.; Fazlali, M. (December 2006). Reversible Implementation of Densely-Packed-Decimal Converter to and from Binary-Coded-Decimal Format Using in IEEE-754R. 9th International Conference on Information Technology (ICIT'06). IEEE. pp. 273–276.
- Cowlishaw, Mike F. (2009) [2002, 2008]. "Bibliography of material on Decimal Arithmetic – by category". General Decimal Arithmetic. IBM. Retrieved 2016-01-02.
बाहरी कड़ियाँ
- Cowlishaw, Mike F. (2014) [2000]. "A Summary of Chen-Ho Decimal Data encoding". General Decimal Arithmetic. IBM. Retrieved 2016-01-02.
- Cowlishaw, Mike F. (2007) [2000]. "A Summary of Densely Packed Decimal encoding". General Decimal Arithmetic. IBM. Retrieved 2016-01-02.
- Convert बीसीडी to decimal, binary and hexadecimal and vice versa
- BCD for Java