"256" का बाइनरी प्रतिनिधित्व क्या है? [बन्द है]


15

आप दशमलव को बाइनरी और बाइनरी को दशमलव में बदल सकते हैं। लेकिन आप "256" संख्या का प्रतिनिधित्व कैसे कर सकते हैं?

255 = 11111111

1 बाइट में 8 से अधिक बाइनरी अंक (बिट्स) नहीं हो सकते हैं। यह कैसे हो सकता है?


3
जैसा कि @ रहस्यमय पहले ही कहा जा चुका है। आपको एक और बिट की आवश्यकता है, क्योंकि कंप्यूटरों की गिनती 0. से शुरू होती है। "11 हाथ भाषा" में, या "एक और व्यक्ति" (बाइट) वास्तविक दुनिया में :)
SOMN

2
मैंने इसे "नहीं एक वास्तविक प्रश्न" के रूप में बंद कर दिया क्योंकि यह बताना मुश्किल है कि आप वास्तव में क्या जानना चाहते हैं। क्या आप किसी संख्या के द्विआधारी प्रतिनिधित्व को जानना चाहते हैं? क्या आप सोच रहे हैं कि यह कैसे संभव है कि एक नंबर एक बाइट में फिट होने के बावजूद भी मौजूद है? क्या आप सोच रहे हैं कि बिट और बाइट्स में डेटा कैसे संग्रहीत किया जाता है? हां, 1 बाइट 8 से अधिक बिट्स को नहीं पकड़ सकता है, क्योंकि यह एक बाइट की परिभाषा है। लेकिन यह सामान्य रूप से संख्याओं पर कोई सीमा नहीं लगाता है।
डेर होकस्टाप्लर

आप 8-बिट पर 256 का प्रतिनिधित्व नहीं कर सकते।
Overmind

जवाबों:


40

आप द्विआधारी में 256 का प्रतिनिधित्व करने का तरीका पूछते हैं, लेकिन मैं अनुमान लगा रहा हूं कि आप लोग क्यों कहते हैं कि बाइट्स 256 अलग-अलग संख्याओं को संग्रहीत कर सकते हैं, जब सबसे बड़ी संख्या यह स्टोर 255 है। जैसा कि क्लाउडीप ने कहा, कंप्यूटर 0 पर गिनना शुरू करते हैं, इसलिए 0 वास्तव में पहली संख्या है, 1 दूसरी है, 2 तीसरी है ... 255 256 वीं है।

इसके अलावा, 11111111 अहस्ताक्षरित बाइट्स के लिए केवल 255 है। जब आपके पास एक हस्ताक्षरित बाइट (एक हस्ताक्षरित मूल्य एक है जो नकारात्मक मूल्यों को पकड़ सकता है), 11111111 वास्तव में -1 है। Http://en.wikipedia.org/wiki/Two_complement देखें । जिस तरह से दो के पूरक काम करते हैं, एक नकारात्मक संख्या को सकारात्मक संख्या में परिणाम जोड़ते हैं। 0. जैसा कि अन्य लोगों ने कहा है, अगर हम 11111111 में थोड़ा जोड़ते हैं, और आपका डेटाटाइप केवल 8 बिट्स का समर्थन कर सकता है, तो अंतिम बिट ओवरफ्लो करेगा और आपको छोड़ देगा 0. हस्ताक्षरित बाइट के लिए, मान -128 से 127 तक होता है। 128 नकारात्मक संख्या + 0 + 127 सकारात्मक संख्या = 256 संख्या।

हस्ताक्षरित मूल्यों के लिए, पहला बिट "साइन" बिट है। यदि यह बिट सेट है, तो संख्या ऋणात्मक है। 10000000 नकारात्मक है, 01000000 धनात्मक है, 11111111 ऋणात्मक है, 01111111 धनात्मक है ...

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

दशमलव और बाइनरी में 256 दिखाते हुए विंडोज कैलकुलेटर


12

वैसे आपको उस का प्रतिनिधित्व करने के लिए 2 बाइट्स की आवश्यकता है। 256 = 00000001 00000000


11

जैसा कि आप पहले से ही जानते हैं, 255d (दशमलव) 11111111b (बाइनरी) के बराबर है। यदि आप अब मूल्य में 1 जोड़ना चाहते हैं, तो दो संभावनाएँ हैं:

या तो आपके पास केवल 8 बिट्स हैं। इस मामले में, एक तथाकथित अतिप्रवाह होता है। तो "आंतरिक रूप से", 1 को 100000000b (9 बिट्स में 256d) के परिणामस्वरूप जोड़ा जाएगा। लेकिन क्योंकि आपके पास केवल 8 बिट्स उपलब्ध हैं, निचले 8 बिट्स "वापस" हो जाएंगे। तो आप 0d = 0b के साथ समाप्त होते हैं (एक विशेष अतिप्रवाह ध्वज को अधिकांश कंप्यूटर आर्किटेक्चर पर सेट किया जाएगा, बस एक नोट के रूप में।)

इसे अपनी उंगलियों से गिनने के समान समझें। कल्पना कीजिए कि आपकी उंगलियां 9d दिखाती हैं। अब आप एक और उंगली जोड़ते हैं। आप 10 से अंत करते हैं। यदि आप एक और भी जोड़ना चाहते हैं तो आप क्या करते हैं?

दूसरी संभावना यह है कि आपके पास 8 से अधिक बिट उपलब्ध हैं। इस स्थिति में आप बस शुरुआत में एक और अंक जोड़ सकते हैं और परिणाम वास्तव में 100000000b = 256d होगा।

एक बाइट सबसे छोटी "इकाई" है जिसे एक कंप्यूटर सिस्टम (मेमोरी सिस्टम) संबोधित कर सकता है। इसका मतलब यह है कि यदि आप केवल एक बिट जानना चाहते हैं, तो आपको एक पते से आपको एक निश्चित बाइट देने के लिए मेमोरी सिस्टम से पूछना होगा और फिर आपको उस बिट के मूल्य का पता लगाना होगा जो आपकी खुद में रुचि रखते हैं।

लेकिन जिस तरह से 8 बिट्स एक बाइट बनाते हैं, उसी तरह बड़े डेटाटिप्स भी हैं। 2 बाइट्स एक शब्द (16 बिट), दो शब्द (चार बाइट, 32 बिट) एक डबल शब्द बनाते हैं। और आजकल मानक 64 बिट आर्किटेक्चर में भी 64 बिट डेटाैटिप्स (तथाकथित रजिस्टर्स) हैं।


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

5

यह 100000000 है और इसे एक से अधिक बाइट की जरूरत है। दरअसल इसके लिए 9 बिट्स चाहिए।


0

आप इसे थोड़ा बदलाव ऑपरेशन ( बाइनरी प्रतिनिधित्व की समाप्ति के आधार पर बाएं या दाएं ) द्वारा प्रतिनिधित्व कर सकते हैं । उदाहरण के लिए यह एक लाइनर एक बड़े एंडियन प्रतिनिधित्व के लिए काम करता है (सबसे महत्वपूर्ण बाइट पहले):

1 << 8

एक अहस्ताक्षरित बाइट केवल 256 मान रख सकता है जिसमें [0 - 255] की सीमा शामिल है। मान 256 के लिए आपको एक डेटा प्रकार का उपयोग करने की आवश्यकता होगी जो एक बड़ा मान रखने में सक्षम है, उदाहरण के लिए एक पूर्णांक।

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