क्या एक बाइट में 8 बिट होते हैं, या 9?


56

मैंने इस असेंबली प्रोग्रामिंग ट्यूटोरियल में पढ़ा कि 8 बिट्स डेटा के लिए उपयोग किए जाते हैं जबकि 1 बिट समता के लिए है, जो तब समता त्रुटि (हार्डवेयर दोष या विद्युत गड़बड़ी के कारण) का पता लगाने के लिए उपयोग किया जाता है।

क्या ये सच है?


5
एक बाइट क्या हो सकती है , इसकी चर्चा के लिए cs.stackexchange.com/a/19851/584 देखें ।
एपीग्रामग्राम

63
वह लेख बकवास से भरा है और आपको इसे अनदेखा करना चाहिए।
डेविड श्वार्ट्ज

12
यदि आप पांडित्यपूर्ण होना चाहते हैं, तो बस उन्हें "ओकटेट" कहें। यह लेख या तो एक बहुत ही विशिष्ट प्रोसेसर को ध्यान में रखकर लिखा गया है (एक जो किसी कारणवश ROM में समता बिट्स रखना चाहिए ...) या सिर्फ निराला है। उदाहरण के लिए, माइक्रोचिप PICs, 14-बिट शब्द की लंबाई का उपयोग करता है। संपूर्ण प्रोग्राम मेमोरी को N x 14 बिट सरणी में व्यवस्थित किया गया है।
निक टी

13
@ निकट: वे एक ही बात नहीं कर रहे हैं, हालांकि। एक ओकटेट हमेशा 8 बिट्स होता है, एक बाइट कुछ भी हो सकता है।
जोर्ग डब्ल्यू मित्तग

4
हो सकता है कि लेख में कुछ शुरुआती आईबीएम पीसी में उपयोग किए जाने वाले स्मृति सुधार तंत्र का उल्लेख किया गया हो, लेकिन यह बताते हुए कि "बाइट 8 बिट डेटा + 1 बिट समता है" बिलकुल बकवास है। एक उदाहरण के रूप में, सीडी-रोम आमतौर पर त्रुटि सुधार तंत्र का उपयोग करते हैं जो बहुत अधिक लालची होते हैं - एक सामान्य ऑडियो सीडी 8 बाइट्स प्रति 24 बाइट ऑडियो डेटा का उपयोग करेगी। लेकिन सबसे महत्वपूर्ण हिस्सा यह है कि आप परवाह नहीं करते हैं । बिल्कुल भी। यह वास्तविक मेमोरी स्टोरेज मैकेनिज्म के लिए विशिष्ट है - सीपीयू परवाह नहीं करता है, आपका कोड परवाह नहीं करता है।
लुआं

जवाबों:


79

डेटा का एक बाइट आठ बिट्स होता है, डेटा के प्रति बाइट में अधिक बिट्स हो सकते हैं जो ओएस या यहां तक ​​कि हार्डवेयर स्तर पर त्रुटि की जाँच के लिए उपयोग किए जाते हैं (समता बिट, या एक और अधिक उन्नत त्रुटि का पता लगाने की योजना), लेकिन डेटा आठ है बिट्स और किसी भी समता बिट आमतौर पर सॉफ्टवेयर के लिए अदृश्य है। एक बाइट को 'आठ बिट डेटा' के लिए मानकीकृत किया गया है। पाठ यह कहने में गलत नहीं है कि डेटा के आठ बिट्स की तुलना में डेटा के बाइट को संग्रहीत करने के लिए और अधिक बिट्स हो सकते हैं, लेकिन जिन्हें आमतौर पर प्रति बाइट का हिस्सा नहीं माना जाता है, पाठ स्वयं इस तथ्य को इंगित करता है।

आप इसे ट्यूटोरियल के निम्नलिखित भाग में देख सकते हैं:

Doubleword: a 4-byte (32 bit) data item

4 * 8 = 32, यह वास्तव में सिस्टम पर 36 बिट्स ले सकता है लेकिन आपके इरादों और उद्देश्यों के लिए यह केवल 32 बिट्स है।


5
ठीक है, अगर हार्डवेयर त्रुटि का पता लगाता है, तो शायद यह बाइट की तुलना में मेमोरी के बड़े हिस्से के साथ ऐसा करेगा, जैसे कि 512-बाइट सेक्टरों के साथ या तो ... इस तरह से आप आवश्यक अतिरिक्त मेमोरी के ओवरहेड को कम कर सकते हैं। बस स्पष्ट करने के लिए: यहां तक ​​कि त्रुटि सुधार के साथ हार्डवेयर अभी भी 8-बिट प्रति बाइट के साथ-साथ डेटा के प्रत्येक "चंक" के लिए कुछ बिट्स का उपयोग करता है, जो संभवतः एक बाइट से बहुत बड़ा है।
बाकूरी

11
ध्यान दें कि सॉफ्टवेयर-दृश्यमान गैर-8-बिट बाइट्स के साथ सिस्टम हैं। देखें कि 8-बिट चार के अलावा और क्या प्लेटफॉर्म हैं? StackOverflow में सवाल।
रुस्लान

3
हां, वे वास्तव में मौजूद हैं। हालांकि वह विशेष लिंक गैर-8-बिट वर्णों के बारे में बात कर रहा है। जैसा कि यह था: बाइट बस बिट्स की संख्या को संदर्भित करता था जो किसी दिए गए सिस्टम को एक 'चार' स्टोर करने के लिए लेता था, जो कि छह बिट्स जितना कम था। लेकिन IIRC यह IEC-80000 विनिर्देश में मानकीकृत है कि एक बाइट 8-बिट है। जैसे-जैसे आप मुख्यधारा के सिस्टम से दूर होते जाते हैं, वैसे-वैसे आप विषमताओं को खोजने लगते हैं, और मानक कानून नहीं बनते।
JustAnotherSoul

3
@JustAnotherSoul: और प्रतिस्पर्धा के मानक हैं, जो बाइट को "कम से कम 8 बिट" या अन्य तरीकों से परिभाषित करते हैं। यह देखना दिलचस्प है कि दशकों बाद बाइट की परिभाषा लोगों के दिमाग में कैसे बदल जाती है। बहुत अधिक स्थापत्य विषमता बाइट के समय में आपकी वास्तुकला की सबसे छोटी पता योग्य इकाई थी (उदाहरण के लिए विभिन्न पीडीपी देखें)। यह भी कारण है कि इंटरनेट के आगमन में ओकटेट शब्द का उपयोग तार पर डेटा का वर्णन करने के लिए किया गया था, क्योंकि बाइट 8 बिट डेटा के लिए एक सार्वभौमिक शब्द नहीं था।
प्लाज्माएच

2
@JustAnotherSoul ध्यान दें कि charसी में (जो लिंक के बारे में है) मेमोरी की सबसे छोटी पता योग्य इकाई है। इसे सिर्फ चार कहा जाता है , लेकिन सी स्टैंडर्ड इसे बाइट का पर्याय बनाता है ।
रुस्लान

48

परंपरागत रूप से, एक बाइट किसी भी आकार की हो सकती है, और स्मृति की सबसे छोटी पता योग्य इकाई है। इन दिनों, 8 बिट बाइट्स को सॉफ्टवेयर के लिए बहुत अधिक मानकीकृत किया गया है। जैसा कि JustAnotherSoul ने कहा, हार्डवेयर 8 बिट्स डेटा की तुलना में अधिक बिट्स संग्रहीत कर सकता है।

यदि आप FPGAs की तरह प्रोग्राम करने योग्य लॉजिक डिवाइस पर काम कर रहे हैं, तो आप देख सकते हैं कि उनकी आंतरिक मेमोरी अक्सर 9-बिट चंक्स के रूप में पता करने योग्य होती है, और HDL लेखक के रूप में, आप त्रुटि जाँच के लिए या बड़ी मात्रा में स्टोर करने के लिए उस 9 बिट का उपयोग कर सकते हैं प्रति "बाइट" का डेटा कस्टम हार्डवेयर के लिए मेमोरी चिप्स खरीदते समय, आपके पास आम तौर पर 8 या 9 बिट एड्रेसेबल यूनिट (या 16/18, 32/36, आदि) का विकल्प होता है, और फिर यह आप पर निर्भर करता है कि आपके पास 9 बिट "बाइट" हैं और क्या यदि आप इसे चुनना चाहते हैं तो आप उस 9 बिट के साथ करते हैं।


10
आम तौर पर जब डेटा का एक समूह होता है जो तार्किक रूप से एक एकल इकाई होता है लेकिन इसमें 8 बिट्स से अधिक / कम होता है, तो इसे "शब्द" कहा जाता है। उदाहरण के लिए, कुछ प्रोसेसर 40-बिट अनुदेश शब्द का उपयोग करते हैं।
देव्समन

3
+1। संयोग से, दोनों "बिट पॉइंटर्स" और "बाइट पॉइंटर्स" के साथ आर्किटेक्चर रहे हैं। ऐसे आर्किटेक्चर में, एक बाइट तकनीकी रूप से "मेमोरी की सबसे छोटी पता योग्य इकाई" नहीं है (क्योंकि आप स्वतंत्र रूप से प्रत्येक बिट को संबोधित कर सकते हैं), हालांकि यह कहना मुश्किल है कि यह क्या है । मुझे लगता है कि यह "मुझे पता है जब मैं इसे देखता हूं" तो यह एक तरह की बात है। :-P
19

18
"ऑक्टेट" पारंपरिक रूप से इस्तेमाल किया जाने वाला शब्द था, जिसका अर्थ था "मैं इसे बाइट कहूंगा, लेकिन सिस्टम के बीच विभिन्न संचार प्रोटोकॉल के लिए मैं वास्तव में 8 बिट्स का मतलब है" जो कि अलग-अलग बाइट का आकार हो सकता है। लेकिन इन दिनों, बाइट का उपयोग कुछ भी करने के लिए लेकिन 8 बिट्स एनाक्रोनॉस्टिक है।
wnoise

@Devsman जरूरी नहीं है। उदाहरण के लिए x86 चिप्स में 32 बिट शब्द और 8 बिट बाइट्स हैं। एक बाइट सबसे छोटा पता योग्य आकार है। यह शब्द थोड़ा अधिक स्पष्ट रूप से परिभाषित है, लेकिन यह उस आकार का है, जिसके साथ काम करना सबसे सुविधाजनक है; यानी अधिकांश निर्देशों की अपेक्षित संचालन अवधि।
रे

इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए, यह अधिक सही है।
awiebe

32

वह पाठ बेहद घटिया शब्द है। वह लगभग निश्चित रूप से ईसीसी (त्रुटि-सुधार कोड) रैम के बारे में बात कर रहा है ।

ECC रैम आमतौर पर 9-बिट्स का उपयोग करके 8-बिट्स की जानकारी संग्रहीत करता है। अतिरिक्त बिट-प्रति-बाइट का उपयोग त्रुटि सुधार कोड को संग्रहीत करने के लिए किया जाता है।

ईसीसी बनाम गैर-ईसीसी (दोनों मामलों में, प्रत्येक बाइट हर चिप में फैली हुई है। पगेट सिस्टम की छवि शिष्टाचार )

यह सभी हार्डवेयर के उपयोगकर्ताओं के लिए पूरी तरह से अदृश्य है। दोनों ही मामलों में, इस रैम का उपयोग करने वाला सॉफ्टवेयर 8 बिट प्रति बाइट देखता है।


एक तरफ के रूप में: रैम में त्रुटि-सुधार कोड आमतौर पर प्रति बाइट 1 बिट नहीं होते हैं; वे 8 बाइट्स प्रति 8 बाइट्स के बजाय हैं। इसमें एक ही स्थान ओवरहेड है, लेकिन इसके कुछ अतिरिक्त फायदे हैं। अधिक जानकारी के लिए SECDED देखें ।


12
Parity RAM और ECC RAM अलग-अलग चीजें हैं। Parity RAM एक अतिरिक्त बिट प्रति त्रुटि डोमेन संग्रहीत करता है, सभी एकल-बिट त्रुटियों और कोई डबल-बिट त्रुटियों का पता लगा सकता है, और कुछ भी ठीक नहीं कर सकता है। ECC प्रति त्रुटि डोमेन में कई अतिरिक्त बिट्स संग्रहीत करता है, सभी एकल-बिट त्रुटियों का पता लगा सकता है और उन्हें ठीक कर सकता है, सभी डबल-बिट त्रुटियों को ठीक नहीं कर सकता है, लेकिन कुछ बड़ी त्रुटियों को पकड़ सकता है। Parity RAM इन दिनों दुर्लभ है, लगभग पूरी तरह से ECC RAM द्वारा प्रतिस्थापित किया गया है।
मार्क

1
@ मर्क: मैंने अपने अंतिम पैराग्राफ में संकेत दिया है, लिंक में अधिक विवरण हैं। Parity RAM इन दिनों मूल रूप से अस्तित्वहीन है क्योंकि (72,64) त्रुटि-सुधार कोड में एक (9,8) parity कोड के समान ओवरहेड है।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

7
जब आप इस पर संकेत देते हैं, तो आप उन चीजों को भी कहते हैं जो इसे गलत / भ्रमित करती हैं। ईसीसी रैम "9-बिट्स का उपयोग करके 8-बिट्स की जानकारी के लिए स्टोर नहीं करता है"। यह बताते हुए कि आप 9 बिट्स का उपयोग करके 8 बिट्स के लिए ईसीसी कर सकते हैं, जो संभव नहीं है। असतत जानकारी के 8 बिट्स के लिए 1 अतिरिक्त बिट का पता लगाने के लिए पर्याप्त है , सही नहीं, एकल बिट त्रुटियां। ECCs बड़ी संख्या में बिट्स या बाइट्स का उपयोग करते हैं, जिसमें डेटा के समूहों के लिए त्रुटियों को सही करने के लिए पर्याप्त डेटा होता है, आमतौर पर एक बाइट से बड़ा होता है। हालांकि यह 8 बिट प्रति अतिरिक्त औसत हो सकता है , इसे प्रत्येक 8 बिट्स के साथ केवल 1 बिट को जोड़ने के लिए नहीं तोड़ा जा सकता है।
मकेन

एक 36-बिट स्कीम (32 बिट शब्द + 4 बिट ईसीसी) है जो एकल बिट त्रुटि सुधार और दो बिट त्रुटि का पता लगाने की अनुमति देता है। जब आप इसे 8 डेटा बिट्स + 1 ईसीसी बिट में विभाजित कर सकते हैं, तो यह उस तरह से काम नहीं कर सकता है / नहीं कर सकता है। ईसीसी के पूर्ण 4 बिट्स की आवश्यकता होती है, जिसमें 32 डेटा बिट्स शामिल होते हैं।
ज़ेनिलॉगिक्स

@Zenilogix और अन्य जिन्होंने एक ही बात दोहराई: मैं अच्छी तरह से समझता हूं कि ईसीसी कैसे काम करता है, और मैंने जो कुछ भी कहा वह गलत था। मैंने कभी दावा नहीं किया कि 8-बिट ईसीसी 9 बिट्स के साथ किया जा सकता है, मैंने कहा कि ईसीसी रैम स्टोरेज के 9-बिट्स-प्रति-बाइट का उपयोग करता है। ईसीसी कैसे काम करता है इस सवाल के लिए पूरी तरह से बाहर है, यही वजह है कि मैंने एक लिंक के साथ विवरण को एक तरफ छोड़ दिया। कृपया सभी पांडित्य संबंधी टिप्पणियाँ रोक दें।
ब्लूराजा - डैनी पफ्लुगुएट

16

आम तौर पर, संक्षिप्त जवाब यह है कि एक बाइट 8 बिट्स है। यह मामले की निगरानी करता है (कभी-कभी अशुद्धि के बिंदु तक भी), लेकिन क्या परिभाषा अधिकांश लोगों (प्रोग्रामर की एक बड़ी संख्या सहित) से परिचित हैं, और परिभाषा लगभग सभी को चूकती है (चाहे वे कितने अलग-अलग आकार के बाइट्स हों) ve के साथ काम करना पड़ा)।

विशेष रूप से, एक बाइट दी गई वास्तुकला के लिए सबसे छोटी पता योग्य स्मृति इकाई है, और आमतौर पर एक ही पाठ चरित्र को धारण करने के लिए पर्याप्त बड़ी है। अधिकांश आधुनिक आर्किटेक्चर पर, एक बाइट को 8 बिट्स के रूप में परिभाषित किया गया है; ISO / IEC 80000-13 यह भी निर्दिष्ट करता है कि एक बाइट 8 बिट्स है, जैसा कि लोकप्रिय आम सहमति है (जिसका अर्थ है कि अगर आप 9 बिट के बाइट्स के बारे में बात कर रहे हैं, तो आप बहुत परेशानी में पड़ने वाले हैं, जब तक कि आप स्पष्ट रूप से नहीं। यह बताएं कि आपके पास सामान्य बाइट्स नहीं हैं)।

हालाँकि, इस नियम के अपवाद हैं। उदाहरण के लिए:

तो, ज्यादातर मामलों में, एक बाइट आमतौर पर 8 बिट्स होगी। यदि नहीं, तो यह संभवतः 9 बिट्स है, और 36-बिट शब्द का हिस्सा हो भी सकता है और नहीं भी।


8

ध्यान दें कि शब्द बाइट शब्द को संदर्भ के बिना अच्छी तरह से परिभाषित नहीं किया गया है। जहां तक ​​कंप्यूटर आर्किटेक्चर का संबंध है, आप मान सकते हैं कि एक बाइट 8-बिट है, कम से कम आधुनिक आर्किटेक्चर के लिए। यह काफी हद तक C जैसे प्रोग्रामिंग लैंग्वेज द्वारा मानकीकृत था, जिसमें कम से कम 8 बिट्स के लिए बाइट्स की आवश्यकता होती थी, लेकिन बड़ी बाइट्स के लिए कोई गारंटी नहीं देता था, केवल सुरक्षित धारणा को प्रति बाइट 8 बिट बनाता था।

8 बिट (आमतौर पर 16 या 32) से बड़े पते वाली इकाइयों के साथ कंप्यूटर होते हैं, लेकिन उन इकाइयों को आमतौर पर मशीन शब्द कहा जाता है, बाइट्स नहीं। उदाहरण के लिए, 32K 32-बिट रैम शब्दों के साथ एक डीएसपी को 128 केबी या रैम के रूप में विज्ञापित किया जाएगा, 32 केबी नहीं।

संचार मानकों की बात आती है तो चीजें इतनी अच्छी तरह से परिभाषित नहीं होती हैं। ASCII अभी भी व्यापक रूप से उपयोग किया जाता है, और इसमें 7-बिट बाइट्स हैं (जो कंप्यूटर पर 8-बिट बाइट्स में अच्छी तरह से फिट हैं)। UART के ट्रांस्फ़ॉर्मर्स अभी भी कॉन्फ़िगर करने योग्य बाइट के आकार के हैं (आमतौर पर, आपको कम से कम 6, 7 और 8 बिट प्रति बाइट लेने के लिए मिलता है, लेकिन 5 और 9 अनसुना नहीं हैं)।


6

एक बाइट को आमतौर पर मेमोरी स्पेस की सबसे छोटी व्यक्तिगत रूप से संबोधित करने योग्य इकाई के रूप में परिभाषित किया जाता है। यह किसी भी आकार हो सकता है। 6 और 9 बिट्स के बीच कहीं भी बाइट साइज़ वाले आर्किटेक्चर रहे हैं, शायद और भी बड़े। ऐसे आर्किटेक्चर भी हैं जहां एकमात्र पता इकाई बस का आकार है, ऐसे आर्किटेक्चर पर हम या तो कह सकते हैं कि उनके पास बस कोई बाइट नहीं है , या बाइट शब्द के समान आकार है (एक विशेष मामले में मुझे पता है कि) 32 बिट हो); किसी भी तरह से, यह निश्चित रूप से 8 बिट नहीं है। इसी तरह, बिट-एड्रेस करने योग्य आर्किटेक्चर हैं, उन आर्किटेक्चर पर, हम फिर से तर्क दे सकते हैं कि बाइट्स बस मौजूद नहीं हैं, या हम तर्क दे सकते हैं कि बाइट्स 1 बिट हैं; किसी भी तरह से एक समझदार परिभाषा है, लेकिन 8 बिट निश्चित रूप से गलत है।

कई मुख्यधारा के सामान्य उद्देश्य आर्किटेक्चर पर, एक बाइट में 8 बिट होते हैं। हालाँकि, यह गारंटी नहीं है। आगे आप मुख्यधारा से और / या सामान्य प्रयोजन सीपीयू से भटक जाएंगे, और अधिक संभावना है कि आप गैर-8-बिट-बाइट्स का सामना करेंगे। यह इतना आगे जाता है कि कुछ अत्यधिक-पोर्टेबल सॉफ़्टवेयर आकार को भी विन्यास योग्य बनाते हैं। जीसीसी के पुराने संस्करणों में एक मैक्रो BITS_PER_BYTE(या ऐसा कुछ) नामक एक मैक्रो होता था , जो एक विशेष वास्तुकला के लिए बाइट के आकार को कॉन्फ़िगर करता था। मेरा मानना ​​है कि NetBSD के कुछ पुराने संस्करणों को गैर-8-बिट-प्रति-बाइट आर्किटेक्चर पर चलाने के लिए बनाया जा सकता है।

यदि आप वास्तव में इस बात पर ज़ोर देना चाहते हैं कि आप स्मृति की सबसे छोटी पता योग्य राशि के बजाय 8 बिट की एक सटीक राशि के बारे में बात कर रहे हैं, हालाँकि जो बड़ी हो सकती है, आप ऑक्टेट शब्द का उपयोग कर सकते हैं , जो कि उदाहरण के लिए कई नए RfCs में उपयोग किया जाता है।


2
मानक C और C ++ में पूर्वनिर्धारित मैक्रो CHAR_BIT(पाया गया limits.h) है, मुझे इस बारे में पता नहीं हैBITS_PER_BYTE
njuffa

3

जब मैंने 1960 में प्रोग्रामिंग शुरू की थी, तो हमारे पास 6 बिट बाइट्स के साथ 48 बिट शब्द थे - वे उस नाम को नहीं कहते थे, तब उन्हें वर्ण कहा जाता था। फिर मैंने 75 बिट शब्दों और 15 बिट बाइट्स के साथ गोलेम कंप्यूटर पर काम किया। बाद में, 6 बिट बाइट्स आदर्श थे, जब तक कि आईबीएम 360 के साथ बाहर नहीं आया था, और आजकल एक बाइट आमतौर पर एक ऑक्टेट के बराबर है, यानी 8 बिट डेटा। कुछ हार्डवेयर में त्रुटि का पता लगाने के लिए और संभवतः त्रुटि सुधार के लिए अतिरिक्त बिट्स थे, लेकिन ये सॉफ़्टवेयर द्वारा सुलभ नहीं थे।


3

एक बाइट 8 बिट है।

सुदूर अतीत में, स्मृति शब्द और बाइट की अलग-अलग परिभाषाएँ थीं। यह सुझाव कि यह अस्पष्टता व्यापक है या आज के जीवन में प्रचलित है झूठी है।

1970 के अंत में कम से कम, एक बाइट 8 बिट्स की रही है। होम कंप्यूटर और पीसी के बड़े पैमाने पर सभी आबादी ने अपने दस्तावेज में 8-बिट मान के रूप में एक बाइट का उपयोग किया है, क्योंकि फ्लॉपी डिस्क ड्राइव, हार्ड डिस्क ड्राइव और PROM / EPP / EEPROM / फ्लैश EPROM के लिए सभी डेटा शीट और प्रलेखन है / एसआरएएम / एसडीआरएएम मेमोरी चिप्स जो मैंने उस समय अवधि में पढ़ा है। (और मैंने व्यक्तिगत रूप से उस समय की अवधि में उनमें से एक बहुत कुछ पढ़ा है।) ईथरनेट और अन्य संचार प्रोटोकॉल के एक जोड़े ने मुझे ओकटेट्स के बारे में बात करने में असामान्य रूप से बताया।

बाइट शब्द की अस्पष्टता अपने आप में एक दुर्लभ और अस्पष्ट बात है। पिछले 30 वर्षों में प्रोग्रामर, डिज़ाइन इंजीनियर, टेस्ट इंजीनियर, सेल्सपर्स, सर्विस इंजीनियर या औसत पंटर्स की आबादी में से बहुत कम लोगों को लगता है कि इसका मतलब 8-बिट वैल्यू के अलावा कुछ और होगा, अगर वे इस शब्द को पहचानते हैं। ।

जब एक बाइट को हार्डवेयर द्वारा नियंत्रित किया जाता है, जैसे जब मेमोरी चिप्स में संग्रहीत या तार के साथ संचार किया जाता है, तो हार्डवेयर बाइट में अनावश्यक डेटा जोड़ सकता है। यह बाद में हार्डवेयर त्रुटियों का पता लगाने में सहायता कर सकता है ताकि अविश्वसनीय डेटा को पहचाना और खारिज किया जा सके (जैसे समता, चेकसम, सीआरसी)। या यह डेटा में त्रुटियों को ठीक करने की अनुमति दे सकता है और पुनर्प्राप्त डेटा (जैसे ईसीसी)। किसी भी तरह से, अनावश्यक डेटा को हटा दिया जाएगा जब बाइट को पुनः प्राप्त किया गया है या आगे की प्रक्रिया के लिए प्राप्त किया गया है। बाइट केंद्रीय 8-बिट मान और निरर्थक डेटा अनावश्यक डेटा रहता है।


2

सबसे पहले, जिस ट्यूटोरियल को आप संदर्भित कर रहे हैं, वह काफी पुराना लग रहा है, और लगता है कि इसे x86 प्रोसेसर के पुराने संस्करणों में निर्देशित किया जा रहा है, बिना यह बताते हुए कि आपके द्वारा पढ़ी गई बहुत सारी चीजें दूसरों द्वारा समझ में नहीं आएंगी (उदाहरण के लिए यदि आप दावा करते हैं कि एक WORD 2 बाइट्स है, लोग या तो यह नहीं जान पाएंगे कि आप किस बारे में बात कर रहे हैं, या उन्हें पता चलेगा कि आपको बहुत पुराने x86 प्रोसेसर के आधार पर पढ़ाया गया है और यह पता चलेगा कि क्या उम्मीद है)।

एक बाइट किसी भी बिट्स की संख्या है जो किसी ने फैसला किया है कि यह होना चाहिए। यह 8 बिट या 9 बिट या 16 बिट, कुछ भी हो सकता है। 2016 में, ज्यादातर मामलों में एक बाइट आठ बिट होगी। सुरक्षित होने के लिए आप ऑक्टेट शब्द का उपयोग कर सकते हैं - एक ऑक्टेट हमेशा, हमेशा, आठ बिट्स होता है।

यहाँ वास्तविक भ्रम दो प्रश्नों को भ्रमित कर रहा है: 1. एक बाइट में बिट्स की संख्या कितनी होती है? 2. यदि मैं एक बाइट को एक स्थान से दूसरे स्थान पर स्थानांतरित करना चाहता था, या यदि मैं व्यावहारिक भौतिक साधनों का उपयोग करते हुए बाइट स्टोर करना चाहता था, तो मैं यह कैसे करूँगा? जब तक आप मॉडेम, या हार्ड ड्राइव, या SSD ड्राइव बनाने वाली कंपनी में काम करते हैं, तब तक दूसरा सवाल आपके लिए आम तौर पर कम रुचि वाला होता है। व्यवहार में आप पहले सवाल में रुचि रखते हैं, और दूसरे के लिए आप बस "अच्छी तरह से कहते हैं, किसी को उसके बाद दिखता है"।

जिस समानता बिट का उल्लेख किया गया था वह एक आदिम तंत्र है जो यह पता लगाने में मदद करता है कि जब बाइट को मेमोरी में संग्रहीत किया जाता है, और बाद में बाइट को पढ़ा जाता है, तो स्मृति किसी दुर्घटना से बदल गई है। यह उस पर बहुत अच्छा नहीं है, क्योंकि यह नहीं पाएगा कि दो बिट्स को बदल दिया गया है इसलिए एक बदलाव की संभावना नहीं है, और यह समस्या से उबर नहीं सकता है क्योंकि यह पता लगाने का कोई तरीका नहीं है कि 8 बिट्स में से कौन सा बदल गया है , या भले ही समता बिट बदल गया हो।

समता बिट्स व्यावहारिक रूप से उस आदिम रूप में उपयोग नहीं किए जाते हैं। स्थायी रूप से संग्रहीत डेटा को आमतौर पर अधिक जटिल तरीकों से संरक्षित किया जाता है, उदाहरण के लिए 1024 बाइट्स के ब्लॉक में 32 बिट या अधिक समय तक चेकसम को जोड़कर - जो बहुत कम अतिरिक्त स्थान लेता है (12.5% ​​के बजाय इस उदाहरण में 0.4%) और बहुत अधिक है कुछ गलत होने पर पता नहीं लगने की संभावना कम है।


वास्तव में पुराना: 16-बाइट "पैराग्राफ" वास्तविक मोड और खंडित पते से स्विच करने के बाद से मेमोरी की एक सार्थक इकाई नहीं है।
मार्क

व्यक्तिगत रूप से, मैं "WinAPI" को मानूंगा जब कोई 2-बाइट्स के बारे में बात करता है WORD, जो ... थोरा आपकी बात साबित करता है, क्योंकि बहुत सारे WinAPI प्रकार के नाम पुराने हैं, लेकिन पश्च-संगतता के लिए रखे गए हैं। xP
जस्टिन टाइम

1

यहां दिए गए वास्तव में उत्कृष्ट उत्तरों के बावजूद, मुझे आश्चर्य है कि किसी ने यह नहीं बताया है कि समानता बिट्स या त्रुटि सुधार बिट्स 'मेटाडेटा' द्वारा हैं और इसलिए स्वयं बाइट का हिस्सा नहीं हैं।

एक बाइट में 8 बिट होते हैं !


0

आधुनिक उपयोग में, एक बाइट 8 बिट है, अवधि (हालांकि इसकी ऐतिहासिक रूप से अन्य परिभाषाएं हैं)। दूसरी ओर, एक डेटा शब्द जो कुछ भी होता है वह एक परमाणु इकाई के रूप में संभालता है हार्डवेयर - 8 बिट्स, 9 बिट्स, 10 बिट्स, 12 बिट्स, 16 बिट्स, 20 बिट्स, 24 बिट्स, 32 बिट्स, आदि हो सकता है। विभिन्न कंप्यूटर वर्षों में सिस्टम में विभिन्न प्रकार के शब्द आकार होते हैं।

मेमोरी सिस्टम या ट्रांसमिशन प्रोटोकॉल को लागू करने के लिए, त्रुटि का पता लगाने / सुधार को जोड़ना फायदेमंद है जिसमें अतिरिक्त बिट्स शामिल हैं। वे 9-बिट बाइट के लिए नहीं बनाते हैं, क्योंकि जैसा कि ऊपर कहा गया है, एक बाइट 8 बिट है।

विभिन्न योजनाएं विभिन्न तरीकों से त्रुटि का पता लगाने और / या सुधार को जोड़ती हैं।

समता का विशिष्ट उपयोग ट्रांसमिशन शब्द में एक अतिरिक्त बिट जोड़ने के लिए है ताकि रिसीवर एकल त्रुटि का पता लगा सके।

एक योजना जो एकल-बिट त्रुटि सुधार प्रदान कर सकती है, उसमें 32 बिट डेटा शब्द के साथ 4 ईसीसी बिट्स शामिल है। यह सिर्फ 1 बिट प्रति बाइट के बराबर अंकगणित होता है, लेकिन यह उस तरह से काम नहीं कर सकता / करती है। एक 36-बिट डेटा शब्द 32-बिट डेटा स्थान के लिए एकल बिट त्रुटि से पुनर्प्राप्त करने के लिए पर्याप्त जानकारी ले सकता है।


0

8 बिट्स। सीपीयू और कीबोर्ड के अंदर, यह 9 और 11 बिट है। उपयोगकर्ता डेटा 8 बिट्स में दर्शाया गया है। कीबोर्ड पर कीज़ गाते हैं जो 11 बिट्स में विभाजित होते हैं। 1 शुरुआती बिट, 1 एंडिंग बिट, 1 पैरिटी बिट और 8 बिट्स एक कुंजी दबाए हुए का प्रतिनिधित्व करते हैं।


2
क्या यह सवाल का जवाब देता है? क्या आप कीबोर्ड में सीपीयू और बाइट्स में बाइट्स के लिए अलग-अलग लंबाई का मतलब है? क्या "गाएं" "तार" या "धाराएं" होनी चाहिए?
Apass.Jack

ऐसा लगता है जैसे आप वायर प्रोटोकॉल के बारे में बात कर रहे हैं, जिसमें वास्तविक डेटा ही नहीं डेटा भी शामिल है।
पीटर कॉर्ड्स

मुझे लगता है कि "गाती है" "सिग्नल" है, अपने आप को, @ Apass.Jack।
जस्टिन टाइम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.