MCP के माध्यम से कनेक्ट करें →

गणना दर्ज करें

सूत्र (फॉर्मूला)

विज्ञापन

परिणाम

2's Complement
01001011
इनपुट प्रकार decimal
मूल इनपुट 181
बिट चौड़ाई 8-बिट
बाइनरी रूप 10110101
1's Complement 01001010
2's Complement 01001011
मूल डेसिमल (Unsigned) 181
मूल डेसिमल (Signed) -75
2's Complement डेसिमल 75
मूल हेक्साडेसिमल 0xB5
Signed हेक्साडेसिमल 0xB5
2's Complement हेक्साडेसिमल 0x4B

2's Complement कैलकुलेटर क्या है?

2's complement कैलकुलेटर संख्याओं को डेसिमल, बाइनरी और हेक्साडेसिमल के बीच बदलता है और साथ ही यह भी दिखाता है कि कंप्यूटर के अंदर ऋणात्मक मान कैसे संग्रहित किए जाते हैं। टू'ज़ कॉम्प्लीमेंट वह मानक तरीका है जिसका उपयोग लगभग सभी आधुनिक प्रोसेसर signed integers को स्टोर करने के लिए करते हैं, इसलिए इसे समझना प्रोग्रामर, इलेक्ट्रॉनिक्स के विद्यार्थियों और डिजिटल लॉजिक से जुड़े हर व्यक्ति के लिए ज़रूरी है। यह टूल आपको किसी भी base में संख्या डालने, bit width (8, 16 या 32 बिट) चुनने और तुरंत उसका टू'ज़ कॉम्प्लीमेंट रूप उसके डेसिमल मान के साथ देखने की सुविधा देता है।

कैलकुलेटर का उपयोग कैसे करें

  • इनपुट फ़ील्ड में अपनी संख्या डालें — यह डेसिमल, बाइनरी या हेक्साडेसिमल स्वीकार करता है।
  • ज़रूरत हो तो अपने इनपुट का base चुनें।
  • bit width चुनें: 8-बिट, 16-बिट या 32-बिट।
  • परिणाम पढ़ें: बाइनरी, हेक्स और signed डेसिमल मान अपने आप दिखाई देते हैं।

bit width महत्वपूर्ण है क्योंकि यह तय करता है कि कितनी रेंज तक के मान संग्रहित किए जा सकते हैं। उदाहरण के लिए, एक 8-बिट signed integer -128 से 127 तक के मान रख सकता है, जबकि एक 16-बिट मान -32,768 से 32,767 तक फैला होता है।

फ़ॉर्मूला की व्याख्या

किसी बाइनरी संख्या का टू'ज़ कॉम्प्लीमेंट निकालने के लिए दो चरण अपनाएं:

$$\text{Twos Complement} = \left(\sim \text{Number}_{\,2}\right) + 1 \pmod{2^{\text{Bit Width}}}$$
  • हर bit को उलट दें (हर 0 को 1 और हर 1 को 0 में बदलें)। यही one's complement है।
  • परिणाम में 1 जोड़ें

सबसे बाईं ओर का bit sign bit का काम करता है: 0 का मतलब धनात्मक और 1 का मतलब ऋणात्मक। किसी ऋणात्मक डेसिमल को टू'ज़ कॉम्प्लीमेंट में बदलने का फ़ॉर्मूला है \(2^{n} + \text{value}\), जहाँ \(n\) bit width है।

विज्ञापन
दो-चरण आरेख: बिट उलटना फिर एक जोड़कर टू'स कॉम्प्लीमेंट प्राप्त करना
टू'स कॉम्प्लीमेंट हर बिट को उलटकर फिर 1 जोड़ने से मिलता है।

हल किया गया उदाहरण

-5 को 8-बिट टू'ज़ कॉम्प्लीमेंट में बदलें:

  • बाइनरी में +5 से शुरू करें: 0000 0101
  • bits को उलटें: 1111 1010
  • 1 जोड़ें: 1111 1011

इसलिए -5 को 1111 1011 के रूप में संग्रहित किया जाता है, जो हेक्साडेसिमल में FB के बराबर है। जाँच करें: \(251 - 256 = -5\) (unsigned मान) में से 256 घटाने पर।

वृत्ताकार आरेख जो 8-बिट साइन्ड परास को धनात्मक से ऋणात्मक तक चक्रित दिखाता है
8-बिट साइन्ड मान चक्रित होते हैं, ऊपरी आधे भाग को ऋणात्मक संख्याओं से जोड़ते हैं।

बिट चौड़ाई के अनुसार हस्ताक्षरित पूर्णांक श्रेणियाँ

टू'ज कंप्लिमेंट कंप्यूटरों द्वारा हस्ताक्षरित पूर्णांकों का प्रतिनिधित्व करने का मानक तरीका है। दी गई बिट चौड़ाई \(n\) के लिए, एक बिट साइन बिट के रूप में कार्य करता है, इसलिए प्रतिनिधित्व योग्य हस्ताक्षरित श्रेणी \(-2^{n-1}\) से \(2^{n-1}-1\) तक है, जबकि समान बिट्स की एक अहस्ताक्षरित व्याख्या \(0\) से \(2^{n}-1\) तक को कवर करती है। सभी अंकगणित मॉड्यूलो \(2^{n}\) में लपेटते हैं।

बिट चौड़ाई \(n\) हस्ताक्षरित न्यूनतम \(-2^{n-1}\) हस्ताक्षरित अधिकतम \(2^{n-1}-1\) अहस्ताक्षरित अधिकतम \(2^{n}-1\) मॉड्यूलस \(2^{n}\)
8 -128 127 255 256
16 -32,768 32,767 65,535 65,536
32 -2,147,483,648 2,147,483,647 4,294,967,295 4,294,967,296
64 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 18,446,744,073,709,551,615 18,446,744,073,709,551,616

उदाहरण के लिए, 8-बिट फॉर्म में दशमलव 5 का टू'ज कंप्लिमेंट 251 है जब एक अहस्ताक्षरित बाइट के रूप में पढ़ा जाता है, जो हस्ताक्षरित मान के रूप में \(-5\) का प्रतिनिधित्व करता है।

सामान्य 8-बिट मानों के लिए दशमलव–बाइनरी–हेक्स संदर्भ

निम्नलिखित तालिका प्रतिनिधि हस्ताक्षरित दशमलव मानों को उनके 8-बिट टू'ज कंप्लिमेंट बाइनरी और हेक्साडेसिमल रूपों में मैप करती है। ऋणात्मक संख्याओं के पास सबसे महत्वपूर्ण बिट 1 पर सेट है। किसी मान को नकारने के लिए, सभी 8 बिट्स को उलटें और 1 जोड़ें।

हस्ताक्षरित दशमलव 8-बिट बाइनरी हेक्स अहस्ताक्षरित मान
-128 1000 0000 0x80 128
-64 1100 0000 0xC0 192
-5 1111 1011 0xFB 251
-1 1111 1111 0xFF 255
0 0000 0000 0x00 0
1 0000 0001 0x01 1
5 0000 0101 0x05 5
64 0100 0000 0x40 64
127 0111 1111 0x7F 127

बाइनरी फॉर्म को स्वतंत्र रूप से सत्यापित करने के लिए, आप 8-बिट पैटर्न 11111011 को दशमलव में वापस परिवर्तित कर सकते हैं, जो एक अहस्ताक्षरित बाइट के रूप में 251 के बराबर है (हस्ताक्षरित के रूप में \(-5\) व्याख्यायित)।

विज्ञापन

मुख्य शर्तें और परिभाषाएँ

बिट चौड़ाई
एक पूर्णांक को संग्रहीत करने के लिए उपयोग किए जाने वाले बाइनरी अंकों की संख्या (आमतौर पर 8, 16, 32, या 64)। यह मॉड्यूलस \(2^{n}\) को ठीक करता है और इसलिए प्रतिनिधित्व योग्य मानों की श्रेणी को निर्धारित करता है।
साइन बिट
एकल बिट जो इंगित करता है कि एक हस्ताक्षरित संख्या ऋणात्मक (1) है या गैर-नकारात्मक (0) है। टू'ज कंप्लिमेंट में यह सर्वोच्च-क्रम बिट है।
सबसे महत्वपूर्ण बिट (MSB)
एक बाइनरी संख्या में बाईं ओर सबसे अधिक मूल्य वाला बिट। एक हस्ताक्षरित टू'ज कंप्लिमेंट मान में MSB साइन बिट के रूप में दोहरा काम करता है।
वन'ज कंप्लिमेंट
एक संख्या का बिटवाइज व्युत्क्रम — हर 0 1 बन जाता है और हर 1 0 बन जाता है (\(\overline{B}\))। यह टू'ज कंप्लिमेंट बनाने के लिए 1 जोड़ने से पहले मध्यवर्ती चरण है।
टू'ज कंप्लिमेंट
प्रमुख हस्ताक्षरित-पूर्णांक एन्कोडिंग: एक मान को नकारने के लिए सभी बिट्स को उलटें और 1 जोड़ें, अर्थात \(\overline{B}+1 \pmod{2^{n}}\)। यह शून्य का एकल प्रतिनिधित्व देता है और समान हार्डवेयर को हस्ताक्षरित और अहस्ताक्षरित संख्याएँ जोड़ने देता है।
ओवरफ्लो / रैपअराउंड
जब कोई परिणाम बिट चौड़ाई के लिए प्रतिनिधित्व योग्य श्रेणी से अधिक हो जाता है तो क्या होता है; मान मॉड्यूलो \(2^{n}\) के चारों ओर लपेटता है। उदाहरण के लिए, 8-बिट अधिकतम 127 में 1 जोड़ना -128 तक लपेटता है।
हस्ताक्षरित बनाम अहस्ताक्षरित पूर्णांक
एक हस्ताक्षरित पूर्णांक टू'ज कंप्लिमेंट का उपयोग करके नकारात्मक का प्रतिनिधित्व कर सकता है (श्रेणी \(-2^{n-1}\) से \(2^{n-1}-1\) तक); एक अहस्ताक्षरित पूर्णांक हर बिट पैटर्न को गैर-नकारात्मक के रूप में मानता है (श्रेणी \(0\) से \(2^{n}-1\) तक)। बिट्स समान हैं — केवल व्याख्या भिन्न है।

अक्सर पूछे जाने वाले प्रश्न

कंप्यूटर टू'ज़ कॉम्प्लीमेंट का उपयोग क्यों करते हैं? इससे जोड़ और घटाव एक ही सर्किट से किए जा सकते हैं, और sign-magnitude या one's complement के विपरीत यहाँ शून्य का केवल एक ही रूप होता है।

अगर मेरी संख्या bit width के लिए बहुत बड़ी हो तो क्या होगा? मान overflow होकर wrap around हो जाता है, जिससे अप्रत्याशित परिणाम मिलता है। इससे बचने के लिए अधिक चौड़ी bit width चुनें।

वापस सामान्य डेसिमल में कैसे बदलें? अगर sign bit 1 है, तो फिर से टू'ज़ कॉम्प्लीमेंट लें और ऋणात्मक चिह्न लगाएं; अगर यह 0 है, तो इसे सामान्य बाइनरी संख्या की तरह पढ़ें।

अंतिम अपडेट: