डिस्क्लेमर - मैं एक सूचना सिद्धांतकार नहीं हूं, बस एक कोड बंदर हूं जो मुख्य रूप से सी और सी ++ (और इस प्रकार, निश्चित-चौड़ाई प्रकारों के साथ) काम करता है, और मेरा जवाब उस विशेष दृष्टिकोण से होने वाला है।
एकल दशमलव अंक का प्रतिनिधित्व करने के लिए औसतन 3.2 बिट्स लगते हैं - 7 के माध्यम से 0 को 3 बिट्स में दर्शाया जा सकता है, जबकि 8 और 9 को 4. (8*3 + 2*4)/10 == 3.2
1 की आवश्यकता होती है ।
यह जितना लगता है उससे कम उपयोगी है। एक बात के लिए, आप स्पष्ट रूप से एक बिट के अंश नहीं है। दूसरे के लिए, यदि आप मूल पूर्णांक प्रकारों का उपयोग कर रहे हैं (जैसे, BCD या BigInt नहीं), तो आप दशमलव अंकों (या उनके बाइनरी समकक्षों) के अनुक्रम के रूप में मानों को संग्रहीत नहीं कर रहे हैं। 8 बिट प्रकार कुछ मानों को संग्रहीत कर सकता है जो 3 दशमलव अंकों तक ले जाते हैं, लेकिन आप 8 बिट्स में सभी 3-दशमलव अंकों के मूल्यों का प्रतिनिधित्व नहीं कर सकते हैं - सीमा है [0..255]
। आप [256..999]
केवल 8 बिट्स में मानों का प्रतिनिधित्व नहीं कर सकते ।
जब हम मूल्यों के बारे में बात कर रहे हैं , तो हम दशमलव का उपयोग करेंगे यदि आवेदन इसकी अपेक्षा करता है (जैसे, एक डिजिटल बैंकिंग एप्लिकेशन)। जब हम बिट्स के बारे में बात कर रहे हैं , तो हम आमतौर पर हेक्स या बाइनरी का उपयोग करेंगे (मैं लगभग कभी ऑक्टल का उपयोग नहीं करता हूं क्योंकि मैं सिस्टम पर काम करता हूं जो 8-बिट बाइट्स और 32-बिट शब्दों का उपयोग करता है, जो 3 से विभाज्य नहीं हैं)।
दशमलव में व्यक्त किए गए मान बाइनरी अनुक्रमों पर सफाई से मैप नहीं करते हैं। दशमलव मान लें 255
। प्रत्येक अंक की बाइनरी समकक्ष होगा 010
, 101
, 101
। फिर भी, मूल्य 255
का द्विआधारी प्रतिनिधित्व है 11111111
। द्विआधारी अनुक्रम के मूल्य में दशमलव के किसी भी अंक के बीच कोई पत्राचार नहीं है । लेकिन हेक्स अंकों के साथ एक सीधा पत्राचार है - F == 1111
ताकि मान को FF
हेक्स के रूप में दर्शाया जा सके ।
यदि आप एक ऐसी प्रणाली पर हैं जहां 9-बिट बाइट्स और 36-बिट शब्द आदर्श हैं, तो ऑक्टल अधिक समझ में आता है क्योंकि बिट्स समूह स्वाभाविक रूप से थ्रस्ट्स में होता है।
- दरअसल, प्रति अंक औसत 0 से छोटा होता है और 1 को केवल एक बिट की आवश्यकता होती है, जबकि 2 और 3 को केवल 2 बिट्स की आवश्यकता होती है। लेकिन, व्यवहार में, हम 7 से 3 बिट्स लेने के लिए 0 पर विचार करते हैं। बस जीवन को बहुत तरीकों से आसान बनाता है।
d
, यह एक दशमलव अंकों की श्रेणी शामिल हैं0..9
।3*d
बिट्स का अर्थ है तीन दशमलव अंक और आप सीमा से पूर्णांक का प्रतिनिधित्व करने की अनुमति देते हैं0..999
। पूरे दस बिट्स (अब बाइनरी सोचो) की एक सीमा देते हैं0..1023
। 999 1023 के काफी करीब है, फिर भी थोड़ा कम है। तो आप उम्मीद कर सकते हैं किd
10/3 से कम होना चाहिए।