एक चरित्र में कितने बिट्स या बाइट्स होते हैं? [बन्द है]


96

"चरित्र" के अनुसार कितने बिट्स या बाइट्स हैं?


1
आपका प्रश्न और शीर्षक विभिन्न चीजों के लिए पूछते हैं। वैसे भी, मैं आपको नहीं समझता, क्या आप आगे बता सकते हैं?
गैलिज्मन

हां, मुझे इस पर यकीन नहीं था। लेकिन बाइट उनके शीर्षक के अनुरूप है। एक बिट में वर्णों की मात्रा कम समझ में आती है, लेकिन एक चरित्र में कितने बिट्स अधिक समझ में आते हैं। हालांकि इसके संदर्भ की आवश्यकता है, जैसा कि ऊपर उल्लेख किया गया है।
स्कर्मडेल

4
@Skurmedel: आप कैसे आंकते हैं? शीर्षक ने "बिट्स" भी कहा।
कोड़ी ग्रे

@ कोडी ग्रे: मेरे संपादित जवाब को देखो। उनके टैग बाइट कहते हैं, तो मुझे लगा कि यह एक टाइपो था। हो सकता है मैं गलत हूं।
स्कर्मडेल

@Skurmedel: मुझे समझ नहीं आया ... आपने प्रश्न का उत्तर पोस्ट नहीं किया है। और हां, मैंने पहले टैग को नोटिस नहीं किया था। लेकिन मैं अभी भी यह सोचने में इच्छुक हूं कि 2/3 1/3 से बेहतर मैच है।
कोड़ी ग्रे

जवाबों:


199

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

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

  • ISO-8859-1 एन्कोडिंग में ISO-8895-1 वर्ण 8 बिट्स (1 बाइट) है।

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

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

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

  • UTF-8 में एक ASCII वर्ण 8 बिट्स (1 बाइट) है, और UTF-16 में - 16 बिट्स।

  • ISO-8895-1 (0xA0-0xFF) में अतिरिक्त (गैर-ASCII) वर्ण UTF-8 और UTF-16 में 16 बिट्स ले जाएगा।

इसका अर्थ होगा कि बिट में 0.03125 और 0.125 अक्षर हैं।


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

17

एक बाइट में 8 बिट्स होते हैं (सामान्य रूप से विंडोज़ में बोलते हुए)।

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

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

संपादित

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


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

@ मैटेओ: ध्यान दें कि विंडोज में, डबल-बाइट जरूरी नहीं कि यूनिकोड के समान हो। संदर्भ
कोड़ी ग्रे

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

@Matteo: हाँ, मैं आपसे सहमत हूँ। मुझे लगता है कि मैंने आपकी पहली टिप्पणी को संपादित करने से पहले कुछ ऐसा देखा, जो अलग तरह से सुझाया गया था, और जब मैंने अपना लिखा था। UTF-16 यूनिकोड स्ट्रिंग्स का उपयोग विंडोज के सभी संस्करणों के लिए आंतरिक रूप से किया जाता है।
कोड़ी ग्रे

@ कोडी ग्रे: मैं अपनी टिप्पणियों को थोड़ा बहुत संपादित करता हूं, इससे भ्रम पैदा होता है:)
Matteo Italia
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.