शब्द "सुविधाजनक" प्रति-शक्ति के दो बिट्स है? यदि है, तो वह क्यों है?


11

मुझे लगता है कि बाइनरी शब्द (जैसे 8-बिट प्रति बाइट) में दो-बिट्स का दावा करने वाले कई स्रोत एक "अच्छी बात" या "सुविधाजनक" हैं। मुझे लगता है कि कोई स्रोत क्यों नहीं इंगित करता है।

से क्या कारण है कि बाइट्स आठ बिट कर रहे हैं के इतिहास है? हम स्वीकृत उत्तर में पढ़ते हैं:

बाइनरी कंप्यूटर डिजाइनरों को दो की आकार की शक्तियां बनाने के लिए प्रेरित करते हैं।

ठीक है, लेकिन क्यों? एक ही सवाल में, लेकिन सवाल के लिए टिप्पणी क्षेत्र में मुझे लगता है:

क्या जेस्ट में अंतिम वाक्य है? एक 12-बिट बाइट असुविधाजनक होगा क्योंकि यह 2 की शक्ति नहीं है - रॉजब

फिर से, तर्क से शून्य ...

पता गणना 2 की शक्तियों के साथ बहुत सरल की एक बिल्ली है, और जब आप छोटे डिब्बे में कच्चे ट्रांजिस्टर से तर्क बना रहे हैं, तो मायने रखता है - माइक

चूंकि बाइट्स सबसे छोटी पता योग्य इकाई होती हैं, इसलिए इसका कोई मतलब नहीं है। हालांकि टिप्पणी पर बहुत सारे उभार। शायद मुझे कुछ याद आया।

से विकिपीडिया :

आठ बिट्स का वास्तविक मानक दो बाइट के लिए 255 के माध्यम से मान 0 की अनुमति देने वाली दो की एक सुविधाजनक शक्ति है

और यह सुविधाजनक होगा क्योंकि ...?

स्पष्टीकरण के लिए, इस की संख्या के बारे में है बिट्स बाइट प्रति (जैसे 8 या 6, आदि), नहीं की संख्या मान बाइट प्रति (जैसे 2 8 या 2 6 , आदि)। भ्रम की वजह से मैं यह भी इंगित करता हूं कि यह शब्द आकार के बारे में नहीं है।

मैं ऐतिहासिक कारणों से अधिक दिलचस्पी नहीं रखता हूं। जिन्हें अन्यत्र अच्छी तरह से समझाया गया है (लिंक देखें)।


SO पर संबंधित प्रश्न: /programming/1606827/why-is-number-of-bits-always-a-power-of-two


2
@gnat मुझे पूरा यकीन है कि हम प्रति बाइट की संख्या के बारे में बात कर रहे हैं (यानी एक 8 बिट बाइट में 8), न कि मूल्यों की संख्या एक बाइट का प्रतिनिधित्व कर सकती है (यानी 2 ^ 8 एक 8 बिट बाइट में)। इसलिए, यदि आपके पास, उदाहरण के लिए, एक 6 बिट बाइट, 6 दो की शक्ति नहीं है , लेकिन हां, एक 6 बिट बाइट दो संख्या के मूल्यों की शक्ति का प्रतिनिधित्व कर सकता है।
8bittree

2
@ 8 बिट मुझे लगता है कि मैं समझ गया, समझाने के लिए धन्यवाद! (डुप्लीकेट वोट से हटा दिया गया - हालांकि मुझे लगता है कि पाठकों के लिए यह आसान होगा यदि आपकी पिछली टिप्पणी की तरह एक एड को प्रश्न में संपादित किया जाएगा , यह बात बहुत ही सूक्ष्म लगती है)
gnat

2
SO पर समान प्रश्न: stackoverflow.com/q/1606827/3723423 - उत्तर सुविधा के बारे में कुछ प्रशंसनीय तर्क पेश करता है
Christophe

2
@ स्नोमैन: ओपी की पोस्ट में "भीख मांगने वाला सवाल" शामिल है: "दो बायर्स की शक्तियों को सुविधाजनक बाइट्स क्यों माना जाता है?" वे नहीं कर रहे हैं इसका दो की शक्तियों से कोई लेना-देना नहीं है; उन्होंने विकिपीडिया लेख में वाक्य को गलत बताया।
रॉबर्ट हार्वे

3
@RobertHarvey "बाइट्स आठ बिट्स क्यों हैं?" के उत्तर में (मेरे प्रश्न में भी जुड़ा हुआ है) निम्नलिखित वाक्य है: "बाइनरी कंप्यूटर डिजाइनरों को दो की आकार की शक्तियां बनाने के लिए प्रेरित करते हैं।" क्या मैंने इसे भी गलत बताया? आपकी राय में दोनों स्रोतों का क्या मतलब है? सिर्फ यह कहना कि "तुम गलत हो गए" वास्तव में मेरे लिए ऐसा नहीं कर रहा है।
एंड्रियास

जवाबों:


10

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

Subcommmitee मानता है कि कंप्यूटर निर्माता उन कंप्यूटरों को डिज़ाइन करने की संभावना नहीं रखते हैं जो आंतरिक रूप से 7-बिट कोड का उपयोग करते हैं। वे 4-बिट, 6-बिट और 8-बिट कोड का उपयोग करने की अधिक संभावना रखते हैं। वर्तमान में, कंप्यूटर के बीच और कंप्यूटर और संबंधित इनपुट / आउटपुट उपकरण के बीच 128 से अधिक अलग और अलग-अलग वर्णों के इंटरचेंज के लिए वर्तमान में कोई व्यापक आवश्यकता नहीं है। [पेपर टेप, जिसमें 8 बिट्स का एक प्राकृतिक फ्रेम आकार था, लेकिन इसमें समता की आवश्यकता थी, इसलिए फ्रेम का पेलोड 7 बिट्स था जिसे ASCII के लिए 7-बिट चार के पक्ष में उद्धृत किया गया है, दो की शक्ति 8 बिट्स के फायदे के बीच उद्धृत नहीं है ] (2)

और हार्डवेयर के लिए 8-बिट बाइट जीती क्योंकि इसने एक बार में 2 दशमलव अंकों को एक बाइट में पैक करने की अनुमति दी जब 75% डेटा संख्यात्मक और बीसीडी (3) में प्रतिनिधित्व किया गया था।

(1) उदाहरण के लिए ब्लाउव और ब्रुक्स, कंप्यूटर आर्किटेक्चर ; मैकेंजी, कोडेड कैरेक्टर सेट्स, हिस्ट्री एंड डेवलपमेंट दोनों में उस विषय पर चर्चा होती है।

(3) X3.2 का दस्तावेज - मैकेंज़ी द्वारा उद्धृत ASCII के उपसमिति के जिम्मेदार।

(3) मैकेंजी, फिर से।


1
धन्यवाद। आपका उत्तर हाजिर है और आप संदर्भ लाए हैं। आपको मेरा वोट है। मुझे एहसास है कि अगर आप कहते हैं कि यह सच है तो साबित करना भी असंभव है। किसी चीज़ की गैर मौजूदगी साबित नहीं कर सकते। मुझे लगता है कि मुझे वास्तव में "सुविधा" का दावा करने वाले लोगों को रोकना चाहिए और उनके स्रोतों की जांच करनी चाहिए। हो सकता है कि यह सिर्फ एक व्यापक फैला हुआ अफवाह हो।
एंड्रियास

अन्य convienience का कारक यह है कि एक बाइट को दो हेक्सिडेसिमल मानों के रूप में आसानी से दर्शाया जा सकता है। एक बाइट में दो बाइनरी कोडेड डेसीमल (बीसीडी) को रखना आमतौर पर पैक्ड दशमलव के रूप में जाना जाता है। यह वास्तव में सुविधाजनक माना जाता था क्योंकि दशमलव को डेटा में हेक्स प्रदर्शित होने पर दशमलव के रूप में पढ़ा जा सकता है।
जिम्मीजम्स

12 बिट बाइट्स को तीन हेक्साडेसिमल मूल्यों के रूप में आसानी से दर्शाया जा सकता है। और आप 12 बिट बाइट में तीन बीसीडी नंबर स्टोर कर सकते हैं। निश्चित रूप से यह दो हेक्साडेसिमल मूल्यों और दो बीसीडी संख्याओं से बहुत बेहतर है। दरअसल, 10 बिट बाइट में तीन दशमलव अंक हो सकते हैं। और मुझे लगता है कि IEEE दशमलव फ़्लोटिंग पॉइंट मानक कैसे काम करता है।
gnasher729

1
@ जिमीजैम, मुझे लगता है कि आप हेक्साडेसिमल के साथ उलट कारण प्राप्त करते हैं। हेक्साडेसिमल लोकप्रिय हो गया क्योंकि यह 8-बिट बाइट का प्रतिनिधित्व करने के लिए एक कॉम्पैक्ट तरीका था, पहले ऑक्टल कहीं अधिक लोकप्रिय था (और यह पीडीपी -11 जैसी मशीन पर अधिक लोकप्रिय था जिसमें 8-बिट बाइट्स थे लेकिन जहां 3-बिट फ़ील्ड महत्वपूर्ण थे अनुदेश सेट एन्कोडिंग में)।
एपीग्रामग्राम

@ gnasher729, 8-बिट बाइट 60 के दशक का एक बच्चा है। 6-बिट चार से 12-बिट चार तक जाना 60 के दशक में अकल्पनीय था। आज भी जब हम कम विवश हैं तो UTF-8 लोकप्रिय है क्योंकि UTF-16 को बहुत बेकार माना जाता है। 10-बिट बाइट के बारे में अकल्पनीय था और 10 बिट प्रति 3 दशमलव अंक एन्कोडिंग भी पूरी तरह से अव्यावहारिक है जब आप रजिस्टरों में मूल्यों की जांच कर रहे होते हैं और सामने के पैनल के साथ स्मृति में होते हैं जो समय की तकनीक के साथ कार्यान्वयन पर प्रभाव के बारे में बात किए बिना।
एपीग्रामग्राम

2

ऐतिहासिक दुर्घटना के अलावा, कोई विशेष कारण नहीं है कि हमें 8/16/32/64 बिट का उपयोग करना चाहिए। मुझे लगता है कि 12/24/48/96 बिट वास्तव में अधिक उपयोगी होगा।

पाठ को संभालने के लिए, यूनिकोड एक काल्पनिक यूटीएफ -24 का उपयोग करना यूटीएफ 32 से सस्ता होगा; काल्पनिक UTF-12 सभी बिट्स और डबल बाइट UTF-8 वर्णों को 12 बिट्स में संग्रहीत करेगा, और सभी ट्रिपल और क्वाड बाइट UTF-8 वर्णों को 24 बिट्स में विभाजित करेगा (रेंज 2 ^ 20 वर्णों से थोड़ी कम होगी, लेकिन यह अभी भी कई बार है से अधिक उदारता से उपयोग किया जाता है); कोड सरल होगा क्योंकि केवल दो ही संस्करण हैं।

फ्लोटिंग पॉइंट के लिए, 48 बिट आमतौर पर पर्याप्त है। 96 बिट 80 बिट विस्तारित की तुलना में काफी बेहतर है। ग्राफिक्स के लिए 24 बिट उपयोगी है; कुछ ग्राफिक्स कार्ड द्वारा समर्थित 16 बिट की तुलना में बहुत अधिक उपयोगी है। 48 बिट पॉइंट 256 टेराबाइट को संभाल सकते हैं।

एकमात्र नुकसान के बारे में थोड़ा ऐरे है, जहां 12 से एक विभाजन को बाइट पदों की गणना करने की आवश्यकता होती है। यदि यह महत्वपूर्ण माना जाता है, तो मुझे यकीन है कि 12 तक विभाजन को हार्डवेयर में काफी कुशलता से लागू किया जा सकता है।


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

1
दिलचस्प विचार, लेकिन मुझे यकीन नहीं है कि यह सवाल का जवाब देता है।

1
सवाल था: "आठ बिट को सुविधाजनक क्यों माना जाता है"। निश्चित रूप से कह रहा है "यह नहीं है" सवाल का जवाब देता है।
gnasher729

1
@ gnasher729 सवाल यह था: "क्यों दो बिट्स की शक्ति प्रति बाइट को सुविधाजनक माना जाता है", हालांकि आपका उत्तर बस के रूप में भी लागू होता है।
8bittree

2
टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
यनीस

2

8 के गुणकों, जैसे 32-बिट और 64-बिट आर्किटेक्चर का उपयोग करने वाले सामान्य हार्डवेयर आर्किटेक्चर के कारण यह सुविधाजनक है। 8-बिट डेटा स्टोरेज और ट्रांसमिशन का उपयोग करते समय इसका मतलब अधिक दक्षता है।

"हालांकि, डिजाइन में अर्थव्यवस्था के विचार दृढ़ता से एक आकार के लिए जोर देते हैं, या गुणकों या अंशों (सबमूलिपल्स) से संबंधित बहुत कम आकार एक प्राथमिक आकार के लिए। यह पसंदीदा आकार वास्तुकला का शब्द आकार बन जाता है।"

शब्द (कंप्यूटर वास्तुकला)

यह भी देखें: बाइट्स आठ बिट्स का इतिहास क्यों है?


5
मैं इसे उत्तर के रूप में स्वीकार नहीं करूंगा। मेरा सवाल यह है कि पावर टू क्यों सुविधाजनक है, डिफैक्टो मानक 8-बिट क्यों नहीं है। और 8-बिट के पीछे के इतिहास में 5, 6 और 7 बिट्स का उपयोग वास्तविक कारणों के लिए किया जा रहा है, जबकि 7 से 8 तक जाने के लिए "मेह, क्यों नहीं" से प्रेरित है। मुझे लगता है कि अलग-अलग स्रोतों को पढने का एहसास दो-दो के पास था, जो वर्तमान प्रणालियों की अनुकूलता से अधिक था। (वास्तव में 8-बिट ने 7-बिट वर्ण सेट समता प्रदान की है।) शब्द एक अलग चीज है जहां मुझे दो आकारों के पावर-ऑफ का लाभ मिलता है, अर्थात गणना में बहु के बजाय शिफ्ट का उपयोग किया जा सकता है।
एंड्रियास

3
@RobertHarvey यह प्रश्न प्रति स्विच राज्यों की संख्या के बारे में नहीं है (यानी द्विआधारी बनाम त्रिकोणीय या अधिक), यह एक साथ समूह में कितने स्विच करने के बारे में है। प्रश्न को मेरा संपादन देखें।
8bittree

2
आपके संपादन के अनुसार, बाइट प्रति बिट की संख्या और प्रति बाइट मानों के बीच कोई सार्थक अंतर नहीं है । यह एक ही चीज को व्यक्त करने के दो तरीके हैं। मूल्यों की संख्या जो एक बाइट को पकड़ सकती है वह सीधे बिट्स की संख्या से होती है: एक बाइट में 8 बिट्स होते हैं, और इसलिए यह मानों को पकड़ सकता है 2⁸-1
रॉबर्ट हार्वे

2
तार्किक रूप से, यह निम्न है कि आप बाइट के लिए एक आकार चुनते हैं जो एक संख्यात्मक सीमा पकड़ सकता है जो सुविधाजनक है। ASCII 7 बिट्स है, क्योंकि यह 128 अलग-अलग मूल्यों के लिए प्रदान करता है, जो रोमन वर्णमाला, संख्यात्मक वर्ण, विराम चिह्न, नियंत्रण वर्ण और कई विशेष वर्णों के दोनों मामलों को एनकोड करने के लिए पर्याप्त है। एक बाइट त्रुटि की जाँच के लिए 7 ASCII बिट्स और एक समता बिट को पकड़ सकता है, कुल 8 बिट्स के लिए, एक टेलेटाइप के लिए उपयुक्त है। हम तब से बाइट के लिए उस आकार का उपयोग कर रहे हैं।
रॉबर्ट हार्वे

2
@JeremyKato जिन उपकरणों का मैंने उल्लेख किया है वे पुराने हैं (60 -80 के दशक के दौर में, अधिकांश भाग के लिए), शायद यही वजह है कि आप उनसे परिचित नहीं हैं। ASCII, वास्तव में एक 7 बिट एन्कोडिंग है (समता मानक का हिस्सा नहीं है)। लेकिन आपकी टिप्पणी के मुख्य भाग के लिए, नहीं, मुझे कुछ भी याद नहीं है। मैं समझता हूं कि ऐसे कारण हैं कि 8 बिट्स विशेष रूप से सुविधाजनक हैं, जो आप और रॉबर्ट हार्वे गायब हैं वह यह है कि सवाल सामान्य रूप से 8 बिट्स नहीं, बल्कि 2 बिट्स की शक्तियों के बारे में पूछ रहा है ।
8bittree

1

शब्द के लिए विकिपीडिया लेख के अनुसार , यह स्मृति को संबोधित करने से संबंधित गणनाओं को काफी आसान बनाता है:

अलग-अलग डिग्री के डेटा वैल्यू को सटीक रूप से स्टोर करने के लिए मेमोरी की विभिन्न मात्राओं का उपयोग किया जाता है। आम तौर पर उपयोग किए जाने वाले आकार आमतौर पर पता रिज़ॉल्यूशन (बाइट या शब्द) की इकाई के दो एकाधिक होते हैं। किसी सरणी में किसी आइटम के सूचकांक को आइटम के पते में परिवर्तित करना फिर गुणन के बजाय केवल शिफ्ट ऑपरेशन की आवश्यकता होती है। कुछ मामलों में यह संबंध विभाजन कार्यों के उपयोग से भी बच सकता है। नतीजतन, अधिकांश आधुनिक कंप्यूटर डिजाइनों में शब्द आकार (और अन्य ऑपरेंड आकार) होते हैं जो एक बाइट के दो गुना आकार की शक्ति होते हैं।


2
हाँ, एक बाइट के आकार के दो गुना की शक्ति। वहाँ कोई अंतर्निहित कारण नहीं है कि एक बाइट आठ बिट्स होनी चाहिए और नौ नहीं, बारह या पंद्रह।
gnasher729

@ gnasher729, 8 (या 16 या 32 या 64) से विभाजित करने के लिए बहुत आसान है, इसे 9 या 12 या 15. से विभाजित करना है
रोबर्ट ब्रिस्टो-जॉनसन

@ gnasher729 अगर शब्द पॉवर ऑफ़ -2 बिट्स और पावर ऑफ़ -2 बाइट्स है, तो इसका अर्थ है कि बाइट को पावर ऑफ़ -2 बिट्स होना है
vartec

@vartec लेख और उद्धरण में कहा गया है, "आमतौर पर उपयोग किए जाने वाले आकार आमतौर पर पता रिज़ॉल्यूशन (बाइट या शब्द) की इकाई के दो एकाधिक होते हैं" और "अधिकांश आधुनिक कंप्यूटर डिज़ाइनों में शब्द आकार (और अन्य ऑपरेंड आकार) होते हैं जो एक शक्ति होते हैं एक बाइट के आकार का दो गुना। ” मैंने पढ़ा "शब्द का आकार" बाइट्स में मापा जाता है, बिट्स नहीं। बिट्स में शब्द आकार के बारे में कोई नियम नहीं है या लेख में शक्तियां -2 होनी चाहिए।
एंड्रियास

@vartec: IF। जाहिर है कोई भी 32 बिट शब्दों और 12 बिट बाइट्स के साथ एक मशीन का निर्माण नहीं करेगा। लेकिन 48 या 96 बिट शब्दों और 12 बिट बाइट वाली मशीन के खिलाफ कुछ भी नहीं बोलता है। और ऐसी मशीनें आ गई हैं जहां एक शब्द दस बाइट्स का था।
gnasher729

0

यह पता स्थान से कसकर संबंधित है। अपने पते की बस में एक बिट अधिक जोड़कर, आप दो बार कई स्मृति स्थानों को संबोधित कर सकते हैं। इसलिए जब आप उस अतिरिक्त लाइन को जोड़ते हैं, तो आप इसका पूर्ण विस्तार तक उपयोग कर सकते हैं।

इससे 1, 2, 4, 8, 16, 32 वगैरह की स्वाभाविक प्रगति होती है।

उत्पादन तकनीकी स्तर पर समान लिथोग्राफिक पैटर्न को दोहराना भी आसान है। यानी इसे दोगुना करना है। यदि आप एक कुंडी से शुरू करते हैं और फिर पैटर्न को दोगुना करते हैं, तो आप 8 नहीं, 6, 10 या 12 पास करेंगे।


1
कैसे एक बाइट में बिट्स की संख्या से संबंधित है? क्या आप गंभीरता से दावा कर रहे हैं कि एक 32 बिट तार्किक और 36 या 28 बिट्स से लागू करना आसान है?
gnasher729

1
मैंने ऐसा कोई दावा नहीं किया। मेरा सुझाव है कि यह पहले के डिजाइनों से उपजा है जो उत्तरोत्तर व्यापक रूप से विस्तारित थे क्योंकि ट्रांजिस्टर सस्ते हो गए और आईसी को छोटे सर्किट की अनुमति दी गई।
मार्टिन माट

1
उत्पादन तकनीकी स्तर के बारे में दिलचस्प सिद्धांत। आप संभवतया किसी काम में लगे हो सकते हैं। क्या आप पैराग्राफ का विस्तार कर सकते हैं या मूल बातें समझाते हुए एक लिंक प्रदान कर सकते हैं?
एंड्रियास

1
यह बकवास है। उदाहरण के लिए, एक ग्राफिक्स कार्ड में जहां विभिन्न स्थानों में सभी प्रकार के विषम बिट आकारों की आवश्यकता होती है, सब कुछ बिल्कुल आवश्यक आकार के साथ किया जाता है, और एक बिट से अधिक नहीं। यदि h.264 डिकोडर को कुछ ऑपरेशन के लिए 19 बिट्स की सटीकता की आवश्यकता होती है, तो हार्डवेयर 19 बिट्स को लागू करता है, न कि 20 या 24 या 32 को। और मुझे क्षमा करें, आप लिथोग्राफिक पैटर्न में हेरफेर नहीं करते हैं। आप हार्डवेयर को परिभाषित करते हैं और फिर इसे कुछ सॉफ़्टवेयर के माध्यम से चलाते हैं जो लेआउट बनाता है।
gnasher729

1
@MartinMaat: आप तकनीकी कारणों से विपणन + मानकीकरण को भ्रमित कर रहे हैं। और तकनीक हम चर्चा कर रहे हैं।
gnasher729

0

हमेशा शब्द चौड़ाई दो की शक्ति नहीं होती है। मैं हाल ही में एक SHArC DSP में कुछ कोडिंग कर रहा हूं जिसमें संख्याओं के लिए 32-बिट शब्द चौड़ाई है, लेकिन opcodes के लिए नहीं (जो कि 48-बिट्स चौड़े हैं)।

संभवतः कारण है कि शब्द चौड़ाई दो की एक शक्ति है क्योंकि कुछ निर्देशों के कारण परीक्षण (या सेट या स्पष्ट या टॉगल) एक बिट या शिफ्ट (या बारी बारी से) एक निर्दिष्ट संख्या में बिट्स द्वारा दाएं या दाएं। एक बिट में स्थान को एकल बिट या शिफ्ट करने के लिए बिट्स की संख्या निर्दिष्ट करने के लिए एक फ़ील्ड है। यदि शब्द की चौड़ाई दो की शक्ति है, तो इस बिट फ़ील्ड को पूरे शब्द को कवर करने के लिए लॉग 2 (word_width) बिट्स की आवश्यकता होती है। यही है, एक शब्द जो 32 बिट्स चौड़ा है, इन ऑपरेशनों के लिए ओपकोड में 5-बिट फ़ील्ड की आवश्यकता होती है। यदि यह शब्द 33 बिट्स चौड़ा था, तो इसे 6 की आवश्यकता होगी अन्यथा यह पूरे शब्द को कवर नहीं कर सकता है, लेकिन यह भी शब्द 64 बिट्स चौड़ा होने पर ऐसा ही होगा।

एक opcode में बिट्स बेहद मूल्यवान हैं, इसलिए वे आमतौर पर उन्हें बर्बाद नहीं करना चाहते हैं। फिर यह शब्द को 2 व्यापक की शक्ति बनाने के लिए समझ में आता है।

बाइट्स का कारण 8 बिट्स चौड़ा है, यह दो की सबसे छोटी शक्ति है जो एक ASCII वर्ण (जो 7 बिट्स है) पकड़ सकता है।


यह मेरी विशेषज्ञता का क्षेत्र नहीं है, लेकिन यह दो बाइट और शब्द आकार की शक्ति के लिए एक वैध कारण की तरह लगता है। मुझे लगता है कि आपको यूबी के बारे में भी कम चिंता करनी होगी। एक बदलाव के लिए 33-बिट्स को 6-बिट ओपकोड की आवश्यकता होगी, लेकिन संभावित मानों (0-32) में से लगभग आधे का ही उपयोगी अर्थ है। क्या आप सहमत हैं?
एंड्रियास

ओपोड को शिफ्ट काउंट के लिए आवश्यक बिट फील्ड की तुलना में व्यापक होना चाहिए। एक बाइट एक शब्द के अलावा और कुछ नहीं है जो 8 बिट्स है। कंप्यूटर हार्डवेयर शब्द के आकार का उपयोग करने का कारण बनता है जो 8 या 16 या 32 या 64 बिट्स हैं (यह हमेशा मामला नहीं है, पुराने DSP56000 में 24-बिट शब्द थे) मेरे द्वारा ऊपर दिए गए कारणों और vartec द्वारा दिए गए कारणों के कारण है : पैक्ड शब्दों का एक बिटमैप दिया गया है और आपको किसी विशेष पिक्सेल की एक पंक्ति और स्तंभ संख्या दी गई है, किसी को शब्द चौड़ाई का कॉलम संख्या को विभाजित करके यह जानना होगा कि किस शब्द का उपयोग पिक्सेल का परीक्षण या बदलने के लिए किया गया है। 2 की शक्ति से विभाजित करना आसान है।
रॉबर्ट ब्रिस्टो-जॉनसन

"पैक्ड शब्दों का बिटमैप" क्या है? क्या हाईकोर्ट उस विवरण के अनुरूप है?
एंड्रियास

@ रोबर्टब्रिस्टो-जॉनसन: कल्पना की कुल कमी। 9 बिट बाइट्स के साथ, हम 36 बिट शब्दों का उपयोग करेंगे, RGBA में 16 मिलियन रंगों के बजाय 130 मिलियन रंग, RGB555 के बजाय RGB666 या निम्न-गुणवत्ता वाले रंग के लिए RGB565 राक्षसी, और सब कुछ ठीक होगा। और ASCII में लैटिन वर्ण तक 512 वर्ण शामिल होंगे।
gnasher729

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