2011-01-31 8 views
41

मैं बस उलझन में हूं ... बस एक बिट में कितने अक्षर हैं?एक चरित्र में कितने बिट्स?

+3

आपका प्रश्न बहुत समझ में नहीं आता है। मुझे लगता है कि थोड़ा सा संदर्भ मदद कर सकता है - आप क्या हासिल करने की कोशिश कर रहे हैं? –

+47

बिट में कितने अक्षर हैं? तीन? बी, मैं और टी। –

+2

@ स्कुरमेडेल: आपके संपादनों ने प्रश्न का अर्थ बदल दिया। बिट्स और बाइट्स ** ** एक ही चीज़ नहीं हैं! –

उत्तर

9

बाइट में 8 बिट्स (आमतौर पर विंडोज़ में बोल रहे हैं) हैं।

हालांकि, यदि आप पात्रों से निपट रहे हैं, तो यह वर्णमाला/एन्कोडिंग पर निर्भर करेगा। यूनिकोड चरित्र 2 या 4 बाइट्स हो सकता है, इसलिए यह 16 या 32 बिट्स होगा, जबकि Windows-1252 कभी-कभी गलत तरीके से एएनएसआई कहा जाता है, केवल 8 बाइट्स ही 1 बिट्स होता है।

विंडोज और कुछ अन्य एशियाई संस्करण में, पूरी प्रणाली डबल-बाइट में चलती है, इसलिए एक चरित्र 16 बिट्स है।

संपादित

प्रति Matteo की टिप्पणी, विंडोज के सभी संस्करणों समकालीन आंतरिक चरित्र प्रति 16-बिट का उपयोग।

+0

कुछ विरासत ऐप्स अभी भी स्थानीय कोडपेज के साथ 1 बाइट वर्ण का उपयोग करते हैं, लेकिन विंडोज़ के सभी एनटी संस्करण आंतरिक रूप से 2-बाइट वर्णों के साथ चलते हैं (यूसीएस -2 2 एनटी 4 तक, विंडोज 2000 से यूटीएफ -16, 'wchar_t' के रूप में संग्रहीत), नहीं केवल एशियाई लोग, और इसलिए सभी नए अनुप्रयोगों को करना चाहिए। (लिनक्स पर, इसके बजाय, यह पूरी तरह से अलग कहानी है क्योंकि आमतौर पर पूरे सिस्टम में यूटीएफ -8 का उपयोग किया जाता है) –

+0

@ मैटेटेओ: ध्यान दें कि विंडोज़ में, डबल-बाइट यूनिकोड जैसा ही नहीं है। [संदर्भ] (http://msdn.microsoft.com/en-us/library/cc194788.aspx) –

+0

@ कोडी ग्रे: हां, आमतौर पर जब आप "डबल-बाइट" एन्कोडिंग पढ़ते हैं तो यह विरासत एशियाई सामान है, और वे संग्रहीत हैं एकाधिक 'char' के रूप में, जबकि यूनिकोड तारों को' wchar_t' प्रकार का उपयोग करके संग्रहीत किया जाता है। वैसे, जब एनटी शुरू किया गया था तो 'wchar_t' सरोगेट जोड़े से बचने के लिए पर्याप्त था, लेकिन अब यह यूटीएफ -16 है' wchar_t' तारों में चर-लंबाई वाले वर्ण हो सकते हैं, इसलिए विंडोज़ पर एक यूनिकोड चरित्र 2 से ले सकता है 4 बाइट्स (1 या 2 'wchar_t')। –

98

यह निर्भर करता है चरित्र है और क्या एन्कोडिंग उस में है क्या:

  • 8-बिट ASCII एन्कोडिंग में एक ASCII वर्ण, 8 बिट्स (1 बाइट) है, हालांकि यह 7 बिट्स में फिट कर सकते हैं।

  • आईएसओ -885 9 -1 एन्कोडिंग में एक आईएसओ -8895-1 चरित्र 8 बिट्स (1 बाइट) है।

  • यूटीएफ -8 एन्कोडिंग में एक यूनिकोड चरित्र 8 बिट्स (1 बाइट) और 32 बिट्स (4 बाइट्स) के बीच है।

  • यूटीएफ -16 एन्कोडिंग में एक यूनिकोड चरित्र 16 (2 बाइट्स) और 32 बिट्स (4 बाइट्स) के बीच है, हालांकि अधिकांश सामान्य पात्र 16 बिट लेते हैं। यह आंतरिक रूप से विंडोज द्वारा उपयोग किया जाने वाला एन्कोडिंग है।

  • यूटीएफ -32 एन्कोडिंग में एक यूनिकोड चरित्र हमेशा 32 बिट्स (4 बाइट्स) होता है।

  • यूटीएफ -8 में एक ASCII चरित्र 8 बिट्स (1 बाइट) है, और यूटीएफ -16 - 16 बिट्स में।

  • आईएसओ -8895-1 (0xA0-0xFF) में अतिरिक्त (गैर-ASCII) वर्ण यूटीएफ -8 और यूटीएफ -16 में 16 बिट लेते हैं।

इसका मतलब यह होगा कि थोड़ा सा 0.03125 और 0.125 वर्णों के बीच हैं।

+0

यह उत्तर सॉकेट, एन्कोडिंग, टेक्स्ट आदि से निपटने में बहुत मदद करता है। –

संबंधित मुद्दे