बाइनरी-कोडित दशमलव
कम्प्यूटिंग और इलेक्ट्रानिक्स सिस्टम में, बाइनरी-कोडेड दशमलव (बीसीडी) दशमलव संख्या के बाइनरी अंक प्रणाली एन्कोडिंग का एक वर्ग है जहां प्रत्येक संख्यात्मक अंक को निश्चित संख्या में अंश्स द्वारा दर्शाया जाता है, आमतौर पर चार या आठ। कभी-कभी, एक चिन्ह (गणित) या अन्य संकेतों (जैसे त्रुटि या अतिप्रवाह) के लिए विशेष बिट पैटर्न का उपयोग किया जाता है।
बाइट-ओरिएंटेड सिस्टम (यानी अधिकांश आधुनिक कंप्यूटर) में, 'अनपैक्ड' बीसीडी शब्द[1]आमतौर पर प्रत्येक अंक के लिए एक पूर्ण बाइट का अर्थ होता है (अक्सर एक संकेत सहित), जबकि पैक्ड बीसीडी आमतौर पर इस तथ्य का लाभ उठाते हुए एक बाइट के भीतर दो अंकों को एनकोड करता है कि चार बिट 0 से 9 की सीमा का प्रतिनिधित्व करने के लिए पर्याप्त हैं। सटीक 4-बिट हालाँकि, तकनीकी कारणों से एन्कोडिंग भिन्न हो सकती है (उदाहरण के लिए अतिरिक्त -3)।
बीसीडी अंक का प्रतिनिधित्व करने वाले दस राज्यों को कभी-कभी टेट्राड (कंप्यूटिंग) कहा जाता है[2][3](आम तौर पर उन्हें पकड़ने के लिए आवश्यक कुतरने के लिए एक टेट्राड के रूप में भी जाना जाता है) जबकि अप्रयुक्त, देखभाल न करें-राज्यों का नाम दिया गया है pseudo-tetrad(e)s ,[4][5][6][7][8]छद्म दशमलव[3]या छद्म दशमलव अंक।[9][10][nb 1]
बीसीडी का मुख्य गुण, बाइनरी स्थितीय प्रणाली की तुलना में, इसका अधिक सटीक प्रतिनिधित्व और दशमलव मात्रा का गोलाई है, साथ ही पारंपरिक में रूपांतरण में आसानी है। मानव-पठनीय प्रतिनिधित्व। बुनियादी अंकगणित के साथ-साथ थोड़ा कम सघन भंडारण को लागू करने के लिए आवश्यक सर्किट की जटिलता में इसकी प्रमुख कमियां हैं।
BCD का उपयोग कई शुरुआती दशमलव कंप्यूटरों में किया गया था, और इसे IBM सिस्टम/360 श्रृंखला और इसके वंशजों, डिजिटल उपकरण निगम के VAX, बरोज़ B1700 और Motorola 68000-श्रृंखला प्रोसेसर जैसी मशीनों के निर्देश सेट में लागू किया गया है। बीसीडी अपने आप में पहले की तरह व्यापक रूप से उपयोग नहीं किया जाता है, और नए निर्देश सेटों में अनुपलब्ध या सीमित है (उदाहरण के लिए, एआरएम वास्तुकला परिवार; लंबे मोड में x86)। हालाँकि, दशमलव फिक्स्ड-पॉइंट अंकगणित | फिक्स्ड-पॉइंट और दशमलव तैरनेवाला स्थल प्रारूप अभी भी महत्वपूर्ण हैं और वित्तीय, वाणिज्यिक और औद्योगिक कंप्यूटिंग में उपयोग किए जाते हैं, जहाँ बाइनरी फ़्लोटिंग में सूक्ष्म रूपांतरण और आंशिक राउंड-ऑफ़ त्रुटि निहित है। बिंदु स्वरूपों को बर्दाश्त नहीं किया जा सकता है।[11]
पृष्ठभूमि
बीसीडी इस तथ्य का लाभ उठाता है कि किसी एक दशमलव अंक को चार-बिट पैटर्न द्वारा दर्शाया जा सकता है। अंकों को एनकोड करने का सबसे स्पष्ट तरीका प्राकृतिक बीसीडी (एनबीसीडी) है, जहां प्रत्येक दशमलव अंक को इसके संबंधित चार-बिट बाइनरी मान द्वारा दर्शाया जाता है, जैसा कि निम्न तालिका में दिखाया गया है। इसे 8421 एन्कोडिंग भी कहा जाता है।
Decimal digit | BCD | |||
---|---|---|---|---|
8 | 4 | 2 | 1 | |
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 0 | 1 | 0 | 0 |
5 | 0 | 1 | 0 | 1 |
6 | 0 | 1 | 1 | 0 |
7 | 0 | 1 | 1 | 1 |
8 | 1 | 0 | 0 | 0 |
9 | 1 | 0 | 0 | 1 |
इस योजना को साधारण बाइनरी-कोडेड दशमलव (SBCD) या BCD 8421 के रूप में भी संदर्भित किया जा सकता है, और यह सबसे आम एन्कोडिंग है।[12]अन्य में तथाकथित 4221 और 7421 एन्कोडिंग शामिल हैं - बिट्स के लिए उपयोग किए जाने वाले भार के नाम पर - और अतिरिक्त -3।[13]उदाहरण के लिए, बीसीडी अंक 6, 0110'b
8421 अंकन में, है 1100'b
4221 में (दो एनकोडिंग संभव हैं), 0110'b
7421 में, जबकि अतिरिक्त-3 में है 1001'b
().
Bit | Weight | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Comment |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Binary |
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 | |
Name | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Decimal | |
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] | |||||||
Aiken (2 4 2 1) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [14][15][16][17][nb 3] | |||||||
Excess-3 (XS-3) | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | [14][15][16][17][nb 2] | |
Excess-6 (XS-6) | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [18][nb 2] | |
Jump-at-2 (2 4 2 1) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | [16][17] | |||||||
Jump-at-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] | |||||||
White (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 | |||
Magnetic tape | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [15] | |||||||
Paul | 1 | 3 | 2 | 6 | 7 | 5 | 4 | 0 | 8 | 9 | [25] | |||||||
Gray | 0 | 1 | 3 | 2 | 7 | 6 | 4 | 5 | 15 | 14 | 12 | 13 | 8 | 9 | 11 | 10 | [26][14][15][16][17][nb 2] | |
Glixon | 0 | 1 | 3 | 2 | 6 | 7 | 5 | 4 | 9 | 8 | [27][14][15][16][17] | |||||||
Ledley | 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] | |||||||
LARC | 0 | 1 | 2 | 4 | 3 | 5 | 6 | 7 | 9 | 8 | [29] | |||||||
Klar | 0 | 1 | 2 | 4 | 3 | 9 | 8 | 7 | 5 | 6 | [2][3] | |||||||
Petherick (RAE) | 1 | 3 | 2 | 0 | 4 | 8 | 6 | 7 | 9 | 5 | [30][31][nb 5] | |||||||
O'Brien I (Watts) | 0 | 1 | 3 | 2 | 4 | 9 | 8 | 6 | 7 | 5 | [32][14][16][17][nb 6] | |||||||
5-cyclic | 0 | 1 | 3 | 2 | 4 | 5 | 6 | 8 | 7 | 9 | [28] | |||||||
Tompkins I | 0 | 1 | 3 | 2 | 4 | 9 | 8 | 7 | 5 | 6 | [33][14][16][17] | |||||||
Lippel | 0 | 1 | 2 | 3 | 4 | 9 | 8 | 7 | 6 | 5 | [34][35][14] | |||||||
O'Brien II | 0 | 2 | 1 | 4 | 3 | 9 | 7 | 8 | 5 | 6 | [32][14][16][17] | |||||||
Tompkins II | 0 | 1 | 4 | 3 | 2 | 7 | 9 | 8 | 5 | 6 | [33][14][16][17] | |||||||
Excess-3 Gray | -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] | |||||||
Lucal | 0 | 15 | 14 | 1 | 12 | 3 | 2 | 13 | 8 | 7 | 6 | 9 | 4 | 11 | 10 | 5 | [37] | |
Kautz I | 0 | 2 | 5 | 1 | 3 | 7 | 9 | 8 | 6 | 4 | [18] | |||||||
Kautz II | 9 | 4 | 1 | 3 | 2 | 8 | 6 | 7 | 0 | 5 | [18][14] | |||||||
Susskind I | 0 | 1 | 4 | 3 | 2 | 9 | 8 | 5 | 6 | 7 | [35] | |||||||
Susskind 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 तक दशमलव अंकों का प्रतिनिधित्व करती है। शीर्षलेखों में,8 4 2 1
प्रत्येक बिट के वजन को इंगित करता है। पांचवें कॉलम में (बीसीडी 84−2-1), दो भार ऋणात्मक हैं। अंकों के लिए एएससीआईआई और ईबीसीडीआईसी दोनों वर्ण कोड, जो ज़ोन बीसीडी के उदाहरण हैं, भी दिखाए गए हैं।
Digit |
BCD 8421 |
Stibitzcode or Excess-3 | Aiken-Code or BCD 2421 |
BCD 84−2−1 |
IBM 702, IBM 705, IBM 7080, IBM 1401 8421 |
ASCII 0000 8421 |
EBCDIC 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
दो बाइट्स के निम्नलिखित बाइनरी पैटर्न में अनपैक्ड बीसीडी परिणामों का उपयोग करना:
दशमलव: 9 1 बाइनरी: 0000 1001 0000 0001
पैक किए गए बीसीडी में, वही संख्या एक बाइट में फिट होगी:
दशमलव: 9 1 बाइनरी: 1001 0001
इसलिए एक अनपैक्ड बीसीडी बाइट के लिए संख्यात्मक सीमा शून्य से नौ समावेशी है, जबकि एक पैक बीसीडी बाइट की सीमा शून्य से नब्बे-नौ समावेशी है।
एक बाइट की सीमा से बड़ी संख्या का प्रतिनिधित्व करने के लिए किसी भी सन्निहित बाइट्स का उपयोग किया जा सकता है। उदाहरण के लिए, दशमलव संख्या का प्रतिनिधित्व करने के लिए 12345
पैक बीसीडी में, बड़े एंडियन प्रारूप का उपयोग करते हुए, एक प्रोग्राम निम्नानुसार एन्कोड करेगा:
दशमलव: 0 1 2 3 4 5 बाइनरी : 0000 0001 0010 0011 0100 0101
यहां, सबसे महत्वपूर्ण बाइट के सबसे महत्वपूर्ण निबल को शून्य के रूप में एन्कोड किया गया है, इसलिए संख्या को इस प्रकार संग्रहीत किया जाता है 012345
(लेकिन स्वरूपण रूटीन प्रमुख शून्यों को बदल या हटा सकते हैं)। पैक्ड बीसीडी अनपैक्ड बीसीडी की तुलना में भंडारण उपयोग में अधिक कुशल है; अनपैक्ड फॉर्मेट में एक ही नंबर (अग्रणी शून्य के साथ) को एन्कोडिंग करने से दो बार स्टोरेज की खपत होगी।
तार्किक पारी और मुखौटा (कंप्यूटिंग) संचालन का उपयोग पैक किए गए बीसीडी अंक को पैक या अनपैक करने के लिए किया जाता है। अन्य बिटवाइज़ ऑपरेशन का उपयोग किसी अंक को उसके समतुल्य बिट पैटर्न में बदलने या प्रक्रिया को उल्टा करने के लिए किया जाता है।
पैक बीसीडी
पैक बीसीडी में (या बस पैक दशमलव[38]), प्रत्येक बाइट के दो निबल्स में से प्रत्येक एक दशमलव अंक का प्रतिनिधित्व करता है।[nb 8]पैक्ड बीसीडी कम से कम 1960 के दशक से उपयोग में है और तब से सभी आईबीएम मेनफ्रेम हार्डवेयर में लागू किया गया है। अधिकांश कार्यान्वयन बड़े एंडियन होते हैं, यानी प्रत्येक बाइट के ऊपरी आधे हिस्से में अधिक महत्वपूर्ण अंक के साथ, और सबसे बाएं बाइट (सबसे कम मेमोरी एड्रेस पर रहने वाले) के साथ पैक किए गए दशमलव मान के सबसे महत्वपूर्ण अंक होते हैं। सबसे दाहिने बाइट के निचले निबल को आमतौर पर साइन फ्लैग के रूप में उपयोग किया जाता है, हालांकि कुछ अहस्ताक्षरित अभ्यावेदन में साइन फ्लैग की कमी होती है। एक उदाहरण के रूप में, एक 4-बाइट मान में 8 निबल्स होते हैं, जिसमें ऊपरी 7 निबल्स 7-अंकीय दशमलव मान के अंकों को संग्रहीत करते हैं, और सबसे कम निबल दशमलव पूर्णांक मान के चिह्न को इंगित करता है।
सकारात्मक (+) के लिए मानक चिह्न मान 1100 (हेक्साडेसिमल C) और ऋणात्मक (-) के लिए 1101 (D) हैं। यह सम्मेलन EBCDIC वर्णों और हस्ताक्षरित ओवरपंच प्रतिनिधित्व के लिए ज़ोन फ़ील्ड से आता है। अन्य अनुमत संकेत सकारात्मक के लिए 1010 (ए) और 1110 (ई) और नकारात्मक के लिए 1011 (बी) हैं। आईबीएम सिस्टम/360 प्रोसेसर 1010 (ए) और 1011 (बी) संकेतों का उपयोग करेंगे यदि एएससीआईआई -8 मानक के लिए पीएसडब्ल्यू में ए बिट सेट किया गया है जो कभी पारित नहीं हुआ। अधिकांश कार्यान्वयन 1111 (एफ) के साइन निबल के साथ अहस्ताक्षरित बीसीडी मान भी प्रदान करते हैं।[39][40][41]आईएलई आरपीजी सकारात्मक के लिए 1111 (एफ) और नकारात्मक के लिए 1101 (डी) का उपयोग करता है।[42]ये अंकों के लिए बिना साइन ओवरपंच के ईबीसीडीआईसी क्षेत्र से मेल खाते हैं। पैक्ड BCD में, संख्या 127 को 0001 0010 0111 1100 (127C) और -127 को 0001 0010 0111 1101 (127D) द्वारा दर्शाया जाता है। बरोज़ सिस्टम ने नकारात्मक के लिए 1101 (डी) का उपयोग किया, और किसी भी अन्य मूल्य को सकारात्मक संकेत मान माना जाता है (प्रोसेसर 1100 (सी) के लिए सकारात्मक संकेत को सामान्य करेगा)।
Sign digit |
BCD 8 4 2 1 |
Sign | Notes |
---|---|---|---|
A | 1 0 1 0 | + | |
B | 1 0 1 1 | − | |
C | 1 1 0 0 | + | Preferred |
D | 1 1 0 1 | − | Preferred |
E | 1 1 1 0 | + | |
F | 1 1 1 1 | + | Unsigned |
इससे कोई फर्क नहीं पड़ता कि एक शब्द (डेटा प्रकार) कितने बाइट चौड़ा है, हमेशा निबल्स की संख्या भी होती है क्योंकि प्रत्येक बाइट में उनमें से दो होते हैं। इसलिए, 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% अधिक मेमोरी का उपयोग करके), एएससीआईआई, ईबीसीडीआईसी, या यूनिकोड के विभिन्न एन्कोडिंग में रूपांतरण तुच्छ बना दिया जाता है, क्योंकि किसी अंकगणितीय संचालन की आवश्यकता नहीं होती है। अतिरिक्त भंडारण आवश्यकताओं को आमतौर पर कैलकुलेटर या हाथ की गणना के साथ सटीकता और संगतता की आवश्यकता से ऑफसेट किया जाता है जो निश्चित-बिंदु दशमलव अंकगणितीय प्रदान करता है। बीसीडी (कैरेक्टर एन्कोडिंग) के सघन पैकिंग मौजूद हैं जो भंडारण दंड से बचते हैं और सामान्य रूपांतरणों के लिए अंकगणितीय संचालन की भी आवश्यकता नहीं होती है।
पैक्ड BCD COBOL प्रोग्रामिंग भाषा में COMPUTATIONAL-3 (कई अन्य कंपाइलर विक्रेताओं द्वारा अपनाया गया एक IBM एक्सटेंशन) या PACKED-DECIMAL (1985 COBOL मानक का हिस्सा) डेटा प्रकार के रूप में समर्थित है। यह PL/I में FIXED DECIMAL के रूप में समर्थित है। आईबीएम सिस्टम/360 और बाद में संगत मेनफ्रेम के अलावा, पैक्ड बीसीडी डिजिटल उपकरण निगम और एसडीएस सिग्मा श्रृंखला मेनफ्रेम के कुछ मॉडलों के मूल वैक्स प्रोसेसर के मूल निर्देश सेट में लागू किया गया है, और बरोज़ कॉर्पोरेशन मीडियम सिस्टम्स के लिए मूल प्रारूप है। मेनफ्रेम की लाइन (1950 के दशक के बरोज़ 205 से निकली)।
नकारात्मक संख्याओं के लिए दस का पूरक निरूपण पैक्ड (और अन्य) बीसीडी संख्याओं के संकेत को एन्कोडिंग के लिए एक वैकल्पिक दृष्टिकोण प्रदान करता है। इस मामले में, धनात्मक संख्याओं में हमेशा 0 और 4 (सम्मिलित) के बीच सबसे महत्वपूर्ण अंक होता है, जबकि ऋणात्मक संख्याओं को संगत धनात्मक संख्या के 10 के पूरक द्वारा दर्शाया जाता है। नतीजतन, यह प्रणाली 32-बिट पैक्ड बीसीडी नंबरों को -50,000,000 से +49,999,999 तक की सीमा के लिए अनुमति देती है, और -1 को 99999999 के रूप में दर्शाया गया है। (दो पूरक बाइनरी संख्याओं के साथ, सीमा शून्य के बारे में सममित नहीं है।)
फिक्स्ड-पॉइंट पैक्ड दशमलव
निश्चित-बिंदु अंकगणित|निश्चित-बिंदु दशमलव संख्या कुछ प्रोग्रामिंग भाषाओं (जैसे COBOL और PL/I) द्वारा समर्थित हैं। ये भाषाएँ प्रोग्रामर को अंकों में से किसी एक के सामने एक अंतर्निहित दशमलव बिंदु निर्दिष्ट करने की अनुमति देती हैं। उदाहरण के लिए, बाइट्स 12 34 56 7C के साथ एन्कोड किया गया एक पैक्ड दशमलव मान निश्चित-बिंदु मान +1,234.567 का प्रतिनिधित्व करता है जब निहित दशमलव बिंदु चौथे और पांचवें अंकों के बीच स्थित होता है:
12 34 56 7सी 12 34.56 7+
दशमलव बिंदु वास्तव में मेमोरी में संग्रहीत नहीं होता है, क्योंकि पैक्ड बीसीडी स्टोरेज प्रारूप इसके लिए प्रदान नहीं करता है। इसका स्थान केवल संकलक के लिए जाना जाता है, और उत्पन्न कोड विभिन्न अंकगणितीय कार्यों के अनुसार कार्य करता है।
उच्च-घनत्व एनकोडिंग
यदि एक दशमलव अंक के लिए चार बिट्स की आवश्यकता होती है, तो तीन दशमलव अंकों के लिए 12 बिट्स की आवश्यकता होती है। हालाँकि, 2 के बाद से10 (1,024) 10 से बड़ा है3 (1,000), यदि तीन दशमलव अंक एक साथ एन्कोड किए जाते हैं, तो केवल 10 बिट की आवश्यकता होती है। इस तरह के दो एनकोडिंग चेन-हो एनकोडिंग और सघन रूप से भरा हुआ दशमलव (DPD) हैं। उत्तरार्द्ध का लाभ यह है कि एन्कोडिंग के सबसेट नियमित बीसीडी के रूप में इष्टतम सात बिट्स में दो अंकों और चार बिट्स में एक अंक को एन्कोड करते हैं।
ज़ोनड दशमलव
कुछ कार्यान्वयन, उदाहरण के लिए IBM मेनफ्रेम सिस्टम, ज़ोन्ड डेसीमल न्यूमेरिक रिप्रेजेंटेशन का समर्थन करते हैं। प्रत्येक दशमलव अंक को एक बाइट में संग्रहीत किया जाता है, जिसमें निचले चार बिट्स बीसीडी फॉर्म में अंक को कूटबद्ध करते हैं। ऊपरी चार बिट्स, जिन्हें ज़ोन बिट्स कहा जाता है, आमतौर पर एक निश्चित मान पर सेट होते हैं ताकि बाइट अंकों के अनुरूप एक वर्ण मान रखे। ईबीसीडीआईसी सिस्टम 1111 (हेक्स एफ) के एक क्षेत्र मूल्य का उपयोग करते हैं; यह F0 से F9 (हेक्स) की सीमा में बाइट्स उत्पन्न करता है, जो 0 से 9 वर्णों के लिए EBCDIC कोड हैं। इसी तरह, ASCII सिस्टम 0011 (हेक्स 3) के एक ज़ोन मान का उपयोग करते हैं, जो वर्ण कोड 30 से 39 (हेक्स) देते हैं।
हस्ताक्षरित ज़ोन वाले दशमलव मानों के लिए, सबसे दाहिना (कम से कम महत्वपूर्ण) ज़ोन निबल साइन अंक रखता है, जो मानों का एक ही सेट है जो हस्ताक्षरित पैक्ड दशमलव संख्याओं के लिए उपयोग किया जाता है (ऊपर देखें)। इस प्रकार हेक्स बाइट्स F1 F2 D3 के रूप में एन्कोडेड एक ज़ोनड दशमलव मान हस्ताक्षरित दशमलव मान -123 का प्रतिनिधित्व करता है:
एफ1 एफ2 डी3 1 2 −3
ईबीसीडीआईसी ज़ोन वाली दशमलव रूपांतरण तालिका
BCD digit | Hexadecimal | EBCDIC character | ||||||
---|---|---|---|---|---|---|---|---|
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 | बी1 | जे | |||||
2− | डी2 | बी2 | के | |||||
3- | डी3 | बी3 | एल | |||||
4− | D4 | बी4 | एम | |||||
5− | D5 | B5 | एन | |||||
6− | D6 | B6 | ओ | |||||
7− | D7 | B7 | पी | |||||
8- | D8 | बी8 | क्यू | |||||
9− | D9 | B9 | आर |
(*) नोट: ये वर्ण स्थानीय वर्ण कोड पृष्ठ सेटिंग के आधार पर भिन्न होते हैं।
फिक्स्ड-पॉइंट ज़ोनड दशमलव
कुछ भाषाएँ (जैसे COBOL और PL/I) निश्चित-बिंदु ज़ोन वाले दशमलव मानों का सीधे समर्थन करती हैं, किसी संख्या के दशमलव अंकों के बीच किसी स्थान पर एक अंतर्निहित दशमलव बिंदु निर्दिष्ट करती हैं। उदाहरण के लिए, चौथे अंक के दाईं ओर एक अंतर्निहित दशमलव बिंदु के साथ छह-बाइट हस्ताक्षरित ज़ोनड दशमलव मान दिया गया है, हेक्स बाइट्स F1 F2 F7 F9 F5 C0 मान +1,279.50 का प्रतिनिधित्व करता है:
F1 F2 F7 F9 F5 C0 1 2 7 9. 5 +0
कंप्यूटर में बीसीडी
आईबीएम
आईबीएम ने 6-बिट अक्षरांकीय कोड के लिए बाइनरी-कोडेड दशमलव इंटरचेंज कोड (BCDIC, जिसे कभी-कभी सिर्फ BCD कहा जाता है) का इस्तेमाल किया, जो संख्याओं, अपर-केस अक्षरों और विशेष वर्णों का प्रतिनिधित्व करता था। आईबीएम 1620 (1959 में शुरू), आईबीएम 1400 श्रृंखला, और गैर-आईबीएम 700/7000 श्रृंखला #दशमलव वास्तुकला (7070/7072/7074) आईबीएम 700 के सदस्यों सहित अधिकांश शुरुआती आईबीएम कंप्यूटरों में बीसीडीआईसी अल्फ़ामेरिक्स की कुछ भिन्नता का उपयोग किया जाता है। /7000 श्रृंखला।
आईबीएम 1400 श्रृंखला चरित्र-पता योग्य मशीनें हैं, प्रत्येक स्थान पर बी, ए, 8, 4, 2 और 1 लेबल वाले छह बिट्स हैं, साथ ही एक विषम समानता जांच बिट (सी) और एक शब्द चिह्न बिट (एम)। एन्कोडिंग अंक 1 से 9 के लिए, बी और ए शून्य हैं और अंकों का मान मानक 4-बिट बीसीडी द्वारा बिट्स 8 से 1 में दर्शाया गया है। अधिकांश अन्य वर्णों के लिए बिट्स बी और ए केवल 12, 11 और 0 ज़ोन पंच से प्राप्त होते हैं। छिद्रित कार्ड वर्ण कोड में, और 1 से 9 पंचों में से 8 से 1 तक बिट्स। एक 12 ज़ोन पंच सेट दोनों B और A, एक 11 ज़ोन सेट B, और एक 0 ज़ोन (किसी अन्य के साथ संयुक्त एक 0 पंच) A सेट करता है। इस प्रकार अक्षर 'A', जो पंच कार्ड में (12,1) है प्रारूप, एन्कोडेड है (बी, ए, 1)। पंच कार्ड में मुद्रा प्रतीक '$', (11,8,3), स्मृति में (बी,8,2,1) के रूप में एन्कोड किया गया था। यह सर्किट्री को केवल कुछ विशेष मामलों के साथ पंच कार्ड प्रारूप और आंतरिक भंडारण प्रारूप के बीच परिवर्तित करने की अनुमति देता है। एक महत्वपूर्ण विशेष मामला अंक 0 है, जो कार्ड में एक अकेला 0 पंच और कोर मेमोरी में (8,2) द्वारा दर्शाया गया है।[43]
आईबीएम 1620 की मेमोरी को 6-बिट एड्रेसेबल अंकों में व्यवस्थित किया जाता है, सामान्य 8, 4, 2, 1 प्लस एफ, फ्लैग बिट और सी के रूप में उपयोग किया जाता है, एक विषम समता चेक बिट। BCD अल्फ़ामेरिक्स को अंक जोड़े का उपयोग करके एन्कोड किया गया है, सम-संबोधित अंक में ज़ोन के साथ और विषम-पता वाले अंक में अंक, ज़ोन 12, 11, और 0 ज़ोन पंच से संबंधित है जैसा कि 1400 श्रृंखला में है। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया।
डेसीमल आर्किटेक्चर में IBM 7070, IBM 7072, और IBM 7074 अल्फ़ामेरिक्स को 10 अंकों वाले शब्द के डिजिट जोड़े (अंकों में पांच में से दो कोड का उपयोग करके, 'नहीं' BCD) का उपयोग करके एन्कोड किया गया है, ज़ोन में बाएँ अंक और दाएँ अंक में अंक। इनपुट/आउटपुट ट्रांसलेशन हार्डवेयर को आंतरिक अंकों के जोड़े और बाहरी मानक 6-बिट बीसीडी कोड के बीच परिवर्तित किया गया।
सिस्टम/360 की शुरुआत के साथ, IBM ने 6-बिट BCD अल्फ़ामेरिक्स को 8-बिट EBCDIC तक विस्तारित किया, जिससे कई और वर्णों (जैसे, लोअरकेस अक्षर) को जोड़ा जा सके। एक चर लंबाई पैक बीसीडी संख्यात्मक डेटा प्रकार भी लागू किया गया है, जो मशीन निर्देश प्रदान करता है जो सीधे पैक किए गए दशमलव डेटा पर अंकगणित करता है।
आईबीएम 1130 और आईबीएम 1800 पर, पैक्ड बीसीडी आईबीएम के वाणिज्यिक सबरूटीन पैकेज द्वारा सॉफ्टवेयर में समर्थित है।
आज, आईबीएम प्रोसेसर और डेटाबेस, जैसे आईबीएम डीबी2, मेनफ्रेम और शक्ति6 में बीसीडी डेटा का अभी भी भारी उपयोग किया जाता है। इन उत्पादों में, बीसीडी आमतौर पर बीसीडी (ईबीसीडीआईसी या एएससीआईआई के रूप में), पैक्ड बीसीडी (दो दशमलव अंक प्रति बाइट), या शुद्ध बीसीडी एन्कोडिंग (प्रत्येक बाइट के कम चार बिट्स में बीसीडी के रूप में संग्रहीत एक दशमलव अंक) होता है। इन सभी का उपयोग हार्डवेयर रजिस्टरों और प्रसंस्करण इकाइयों और सॉफ्टवेयर में किया जाता है। EBCDIC टेबल अनलोड में पैक किए गए दशमलव को पढ़ने योग्य संख्या में बदलने के लिए, आप JCL यूटिलिटी DFSORT के OUTREC FIELDS मास्क का उपयोग कर सकते हैं।[44]
अन्य कंप्यूटर
डिजिटल उपकरण निगम VAX-11 श्रृंखला में निर्देश सेट शामिल है जो सीधे पैक किए गए बीसीडी डेटा पर अंकगणित कर सकता है और पैक किए गए बीसीडी डेटा और अन्य पूर्णांक प्रस्तुतियों के बीच परिवर्तित कर सकता है।[41]VAX का पैक्ड BCD प्रारूप IBM सिस्टम/360 और IBM के बाद के संगत प्रोसेसर के साथ संगत है। MicroVAX और बाद में VAX कार्यान्वयन ने इस क्षमता को CPU से हटा दिया लेकिन ऑपरेटिंग सिस्टम द्वारा आपूर्ति की गई सॉफ़्टवेयर लाइब्रेरी में लापता निर्देशों को लागू करके पहले की मशीनों के साथ कोड संगतता बनाए रखी। निष्क्रिय निर्देशों का सामना होने पर इसे अपवाद प्रबंधन के माध्यम से स्वचालित रूप से लागू किया जाता है, ताकि उनका उपयोग करने वाले प्रोग्राम नई मशीनों पर बिना किसी संशोधन के निष्पादित हो सकें।
Intel x86 आर्किटेक्चर एक Intel BCD opcode | अद्वितीय 18-अंकीय (दस-बाइट) BCD प्रारूप का समर्थन करता है जिसे फ़्लोटिंग पॉइंट रजिस्टरों में लोड और संग्रहीत किया जा सकता है, जहाँ से संगणना की जा सकती है।[45]
मोटोरोला 68000 श्रृंखला में बीसीडी निर्देश थे।[46]
हाल के कंप्यूटरों में सीपीयू के निर्देश सेट के बजाय ऐसी क्षमताओं को लगभग हमेशा सॉफ्टवेयर में लागू किया जाता है, लेकिन व्यावसायिक और वित्तीय अनुप्रयोगों में बीसीडी न्यूमेरिक डेटा अभी भी बेहद आम है। शब्द-समानांतर तर्क और बाइनरी अंकगणितीय संचालन के अनुक्रमों को समझने में मुश्किल लेकिन मुश्किल का उपयोग करके पैक्ड बीसीडी और ज़ोनड दशमलव ऐड-या-घटाना संचालन को लागू करने के लिए तरकीबें हैं।[47]उदाहरण के लिए, निम्नलिखित कोड (सी (प्रोग्रामिंग भाषा) में लिखा गया है) 32-बिट बाइनरी ऑपरेशंस का उपयोग करके एक हस्ताक्षरित 8-अंकीय पैक बीसीडी जोड़ की गणना करता है: <वाक्यविन्यास प्रकाश लैंग = सी> uint32_t BCDadd (uint32_t a, uint32_t b) {
uint32_t टी 1, टी 2; // अहस्ताक्षरित 32-बिट मध्यवर्ती मान
टी 1 = ए + 0x06666666; टी 2 = टी 1 ^ बी; // योग बिना प्रसार के टी 1 = टी 1 + बी; // अनंतिम राशि टी 2 = टी 1 ^ टी 2; // सभी बाइनरी कैरी बिट्स टी 2 = ~ टी 2 और 0x11111110; // बस बीसीडी बिट्स ले जाता है टी 2 = (टी 2 >> 2) | (टी2 >> 3); // सुधार वापसी टी 1 - टी 2; // सही बीसीडी राशि
} </वाक्यविन्यास हाइलाइट>
इलेक्ट्रॉनिक्स में बीसीडी
बीसीडी इलेक्ट्रॉनिक प्रणालियों में बहुत आम है जहां एक संख्यात्मक मूल्य प्रदर्शित किया जाना है, विशेष रूप से केवल डिजिटल लॉजिक वाले सिस्टम में, और माइक्रोप्रोसेसर नहीं है। बीसीडी को नियोजित करके, प्रत्येक अंक को एक अलग एकल उप-सर्किट के रूप में मानकर प्रदर्शित करने के लिए संख्यात्मक डेटा के हेरफेर को बहुत सरल बनाया जा सकता है। यह डिस्प्ले हार्डवेयर की भौतिक वास्तविकता से अधिक निकटता से मेल खाता है - उदाहरण के लिए, एक डिज़ाइनर मीटरिंग सर्किट बनाने के लिए अलग-अलग समान सात-खंड डिस्प्ले की एक श्रृंखला का उपयोग करना चुन सकता है। यदि संख्यात्मक मात्रा को शुद्ध बाइनरी के रूप में संग्रहीत और हेरफेर किया गया था, तो इस तरह के डिस्प्ले के साथ इंटरफेस करने के लिए जटिल सर्किट्री की आवश्यकता होगी। इसलिए, ऐसे मामलों में जहां गणना अपेक्षाकृत सरल होती है, बीसीडी के साथ काम करने से बाइनरी में परिवर्तित करने की तुलना में एक समग्र सरल प्रणाली हो सकती है। अधिकांश पॉकेट कैलकुलेटर अपनी सभी गणना बीसीडी में करते हैं।
यही तर्क तब लागू होता है जब इस प्रकार का हार्डवेयर एम्बेडेड माइक्रोकंट्रोलर या अन्य छोटे प्रोसेसर का उपयोग करता है। अक्सर, बीसीडी प्रारूप में आंतरिक रूप से संख्याओं का प्रतिनिधित्व करने के परिणामस्वरूप छोटे कोड होते हैं, क्योंकि इस तरह के सीमित प्रोसेसर पर बाइनरी प्रतिनिधित्व से रूपांतरण महंगा हो सकता है। इन अनुप्रयोगों के लिए, कुछ छोटे प्रोसेसर में समर्पित अंकगणितीय मोड होते हैं, जो बीसीडी मात्रा में हेरफेर करने वाले रूटीन लिखते समय सहायता करते हैं।[48][49]
== बीसीडी == के साथ संचालन
जोड़
पहले बाइनरी में जोड़कर और बाद में बीसीडी में परिवर्तित करके अतिरिक्त प्रदर्शन करना संभव है। दो अंकों के सरल योग का रूपांतरण 6 जोड़कर किया जा सकता है (अर्थात, 16 - 10) जब अंकों की एक जोड़ी को जोड़ने के पांच-बिट परिणाम का मान 9 से अधिक हो। 6 जोड़ने का कारण यह है कि वहाँ हैं 16 संभव 4-बिट बीसीडी मान (2 के बाद से4 = 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, Zilog Z80[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 को पहले BCD में 0002 के रूप में प्रदर्शित करना होगा, और 0002 के दहाई के पूरक की गणना करनी होगी।
== शुद्ध बाइनरी == के साथ तुलना
लाभ
- कई गैर-अभिन्न मान, जैसे दशमलव 0.2, बाइनरी (.001100110011...) में एक अनंत स्थान-मान प्रतिनिधित्व करते हैं, लेकिन बाइनरी-कोडेड दशमलव (0.0010) में एक परिमित स्थान-मान होता है। नतीजतन, दशमलव अंशों के द्विआधारी-कोडित दशमलव निरूपण पर आधारित एक प्रणाली ऐसे मानों का प्रतिनिधित्व करने और गणना करने में त्रुटियों से बचती है। यह वित्तीय गणना में उपयोगी है।
- 10 की शक्ति से स्केल करना आसान है।
- दशमलव अंक सीमा पर पूर्णांक बनाना सरल है। दशमलव में जोड़ और घटाव को गोल करने की आवश्यकता नहीं है।[dubious ]
- दो दशमलव संख्याओं का संरेखण (उदाहरण के लिए 1.3 + 27.08) एक सरल, सटीक बदलाव है।
- एक वर्ण रूप में या प्रदर्शन के लिए रूपांतरण (उदाहरण के लिए, एक्सएमएल जैसे टेक्स्ट-आधारित प्रारूप में, या सात-सेगमेंट डिस्प्ले के लिए सिग्नल ड्राइव करने के लिए) एक साधारण प्रति-अंकीय मैपिंग है, और इसे रैखिक (बड़े-बड़े) में किया जा सकता है। ओ अंकन (एन)) समय। शुद्ध बाइनरी अंक प्रणाली से रूपांतरण में अपेक्षाकृत जटिल तर्क शामिल होता है जो अंकों को फैलाता है, और बड़ी संख्या के लिए, कोई रैखिक-समय रूपांतरण एल्गोरिदम ज्ञात नहीं है (देखें Binary numeral system § Conversion to and from other numeral systems).
नुकसान
- कुछ ऑपरेशन लागू करने के लिए अधिक जटिल हैं। ऐडर (इलेक्ट्रॉनिक्स) को अतिरिक्त तर्क की आवश्यकता होती है ताकि वे लपेट सकें और जल्दी कैरी कर सकें। बीसीडी ऐड के लिए प्योर बाइनरी की तुलना में 15 से 20 फीसदी ज्यादा सर्किट्री की जरूरत होती है।[citation needed] गुणन के लिए एल्गोरिदम के उपयोग की आवश्यकता होती है जो शिफ्ट-मास्क-ऐड (एक बाइनरी अंक प्रणाली # गुणा, बाइनरी शिफ्ट की आवश्यकता होती है और समकक्ष, प्रति-अंक या अंकों के समूह की आवश्यकता होती है) की तुलना में कुछ अधिक जटिल होती है।
- मानक बीसीडी को चार बिट्स प्रति अंक की आवश्यकता होती है, बाइनरी एन्कोडिंग की तुलना में लगभग 20 प्रतिशत अधिक स्थान (लॉग करने के लिए 4 बिट्स का अनुपात)210 बिट 1.204 है)। जब पैक किया जाता है ताकि तीन अंकों को दस बिट्स में एन्कोड किया जा सके, स्टोरेज ओवरहेड बहुत कम हो जाता है, एक एन्कोडिंग की कीमत पर जो मौजूदा हार्डवेयर पर 8-बिट बाइट सीमाओं के साथ असंरेखित है, जिसके परिणामस्वरूप इन सिस्टमों पर धीमी गति से कार्यान्वयन होता है।
- बीसीडी के व्यावहारिक मौजूदा कार्यान्वयन आमतौर पर देशी बीसीडी संचालन के लिए सीमित प्रोसेसर समर्थन के कारण, विशेष रूप से एम्बेडेड सिस्टम पर बाइनरी प्रस्तुतियों पर संचालन की तुलना में धीमे होते हैं।[52]
प्रतिनिधिक रूपांतर
विभिन्न बीसीडी कार्यान्वयन मौजूद हैं जो संख्याओं के लिए अन्य अभ्यावेदन नियोजित करते हैं। टेक्सस उपकरण, हेवलेट पैकर्ड और अन्य द्वारा निर्मित प्रोग्राम करने योग्य कैलकुलेटर आमतौर पर फ्लोटिंग-पॉइंट बीसीडी प्रारूप को नियोजित करते हैं, आमतौर पर (दशमलव) एक्सपोनेंट के लिए दो या तीन अंकों के साथ। साइन डिजिट के अतिरिक्त बिट्स का उपयोग विशेष संख्यात्मक मानों को इंगित करने के लिए किया जा सकता है, जैसे कि अनंत, अंकगणितीय अंतर्प्रवाह/अंकगणितीय अतिप्रवाह, और परिभाषित और अपरिभाषित (एक निमिष प्रदर्शन)।
हस्ताक्षरित विविधताएं
हस्ताक्षरित दशमलव मानों को कई तरीकों से दर्शाया जा सकता है। COBOL प्रोग्रामिंग भाषा, उदाहरण के लिए, पाँच ज़ोन वाले दशमलव स्वरूपों का समर्थन करती है, प्रत्येक एक अलग तरीके से संख्यात्मक चिह्न को कूटबद्ध करता है:
Type | Description | Example |
---|---|---|
Unsigned | No sign nibble | F1 F2 F3
|
Signed trailing (canonical format) | Sign nibble in the last (least significant) byte | F1 F2 C3
|
Signed leading (overpunch) | Sign nibble in the first (most significant) byte | C1 F2 F3
|
Signed trailing separate | Separate sign character byte ('+' or '−' ) following the digit bytes
|
F1 F2 F3 2B
|
Signed leading separate | Separate sign character byte ('+' or '−' ) preceding the digit bytes
|
2B F1 F2 F3
|
टेलीफोनी बाइनरी-कोडेड दशमलव (टीबीसीडी)
3GPP ने TBCD का विकास किया,[53]बीसीडी का विस्तार जहां विशिष्ट टेलीफ़ोनी वर्णों को जोड़ने के लिए शेष (अप्रयुक्त) बिट संयोजनों का उपयोग किया जाता है,[54][55]दोहरे स्वर बहु-आवृत्ति संकेतन मूल डिजाइन में पाए गए अंकों के समान अंक के साथ।
Decimal digit |
TBCD 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 |
Used as filler when there is an odd number of digits | 1 1 1 1 |
उल्लिखित 3GPP दस्तावेज़ TBCD-STRING को प्रत्येक बाइट में स्वैप किए गए निबल्स के साथ परिभाषित करता है। 1 से अनुक्रमित बिट्स, ऑक्टेट और अंक, दाएं से बिट्स, बाएं से अंक और ऑक्टेट। <ब्लॉककोट> बिट 8765 ऑक्टेट एन एन्कोडिंग डिजिट 2एन
ऑक्टेट एन के बिट्स 4321 एन्कोडिंग अंक 2(एन - 1) + 1 </ब्लॉककोट>
अर्थ संख्या 1234
, बन जाएगा 21 43
टीबीसीडी में।
वैकल्पिक एनकोडिंग
यदि प्रतिनिधित्व और संगणना में त्रुटियां प्रदर्शन से और रूपांतरण की गति से अधिक महत्वपूर्ण हैं, तो एक स्केल किए गए बाइनरी प्रतिनिधित्व का उपयोग किया जा सकता है, जो एक दशमलव संख्या को बाइनरी-एन्कोडेड पूर्णांक और बाइनरी-एन्कोडेड हस्ताक्षरित दशमलव एक्सपोनेंट के रूप में संग्रहीत करता है। उदाहरण के लिए, 0.2 को 2 के रूप में दर्शाया जा सकता है×10−1.
यह प्रतिनिधित्व तेजी से गुणा और भाग की अनुमति देता है, लेकिन दशमलव बिंदुओं को संरेखित करने के लिए जोड़ और घटाव के दौरान 10 की शक्ति से स्थानांतरण की आवश्यकता हो सकती है। यह दशमलव स्थानों की एक निश्चित संख्या वाले अनुप्रयोगों के लिए उपयुक्त है, जिन्हें तब इस समायोजन की आवश्यकता नहीं होती है - विशेष रूप से वित्तीय अनुप्रयोग जहां दशमलव बिंदु के बाद 2 या 4 अंक आमतौर पर पर्याप्त होते हैं। वास्तव में, यह लगभग निश्चित बिंदु अंकगणित का एक रूप है क्योंकि मूलांक बिंदु की स्थिति निहित है।
हर्ट्ज़ एन्कोडिंग और चेन-हो एनकोडिंग तीन बीसीडी-एन्कोडेड अंकों के समूहों को 10-बिट मानों से परिवर्तित करने के लिए बूलियन रूपांतरण प्रदान करते हैं।[nb 1]जिसे केवल 2 या 3 गेट विलंब के साथ हार्डवेयर में कुशलतापूर्वक एन्कोड किया जा सकता है। डेंसली पैक्ड डेसिमल (DPD) एक समान योजना है[nb 1]इसका उपयोग IEEE 754-2008 फ़्लोटिंग-पॉइंट मानक में निर्दिष्ट दो वैकल्पिक दशमलव एन्कोडिंग में से एक के लिए, लीड अंक को छोड़कर अधिकांश महत्व के लिए किया जाता है।
आवेदन
कई व्यक्तिगत कंप्यूटरों में BIOS BCD में दिनांक और समय को संग्रहीत करता है क्योंकि मूल IBM PC AT मदरबोर्ड में उपयोग की जाने वाली MC6818 रीयल-टाइम क्लॉक चिप BCD में एन्कोडेड समय प्रदान करती है। यह प्रपत्र प्रदर्शन के लिए ASCII में आसानी से परिवर्तित हो जाता है।[56][57]
फ्लोटिंग-पॉइंट एल्गोरिदम को लागू करने के लिए कंप्यूटर के अटारी 8-बिट परिवार ने बीसीडी का इस्तेमाल किया। एमओएस टेक्नोलॉजी 6502 प्रोसेसर में एक बीसीडी मोड है जो जोड़ने और घटाने के निर्देशों को प्रभावित करता है। Psion ऑर्गनाइज़र हैंडहेल्ड कंप्यूटर के निर्माता द्वारा आपूर्ति किए गए सॉफ़्टवेयर ने फ़्लोटिंग पॉइंट को लागू करने के लिए पूरी तरह से BCD का उपयोग किया; बाद के Psion मॉडल ने विशेष रूप से बाइनरी का उपयोग किया।
प्लेस्टेशन 3 के शुरुआती मॉडल बीसीडी में तारीख और समय को स्टोर करते हैं। इसके कारण 1 मार्च 2010 को कंसोल का विश्वव्यापी आउटेज हो गया। वर्ष के अंतिम दो अंक BCD समय स्वरूपण और भंडारण बग के रूप में 16 के रूप में संग्रहीत किए गए, जिससे यूनिट की तारीख में त्रुटि हुई, जिससे अधिकांश कार्य अक्षम हो गए। इसे वर्ष 2010 की समस्या के रूप में संदर्भित किया गया है।
कानूनी इतिहास
1972 के मामले में गॉट्सचैक बनाम बेन्सन, यू.एस. सुप्रीम कोर्ट ने यूनाइटेड स्टेट्स कोर्ट ऑफ कस्टम्स एंड पेटेंट अपील्स के फैसले को पलट दिया, जिसने कंप्यूटर पर बीसीडी-एन्कोडेड नंबरों को बाइनरी में बदलने के लिए एक पेटेंट की अनुमति दी थी। निर्णय ने कहा कि एक पेटेंट गणितीय सूत्र को पूरी तरह से पूर्व-खाली करेगा और व्यावहारिक प्रभाव में कलन विधि पर ही एक पेटेंट होगा।[58]यह एक ऐतिहासिक निर्णय था जिसने सॉफ्टवेयर और एल्गोरिदम की पेटेंट क्षमता का निर्धारण किया।
यह भी देखें
- द्वि-क्विनरी कोडित दशमलव
- बाइनरी-कोडेड टर्नरी (BCT)
- बाइनरी पूर्णांक दशमलव (बीआईडी)
- बिटमास्क
- चेन-हो एन्कोडिंग
- दशमलव कंप्यूटर
- घनी पैक दशमलव (DPD)
- डबल डब्बल, बाइनरी नंबरों को बीसीडी में बदलने के लिए एक एल्गोरिथ्म
- वर्ष 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 BCD to decimal, binary and hexadecimal and vice versa
- BCD for Java