UTILS.
100% ब्राउज़र में
🔢

Two's Complement कन्वर्टर

साइन्ड पूर्णांकों को 4, 8, 16, 32 या 64-बिट चौड़ाई पर two's-complement बाइनरी और हेक्स में/से बदलें, one's complement और unsigned व्याख्या के साथ।

ऊपर एक संख्या या बिट पैटर्न दर्ज करें।

इस टूल के बारे में

Two's Complement कन्वर्टर एक साइन्ड पूर्णांक को आपके चुने बिट चौड़ाई (4, 8, 16, 32 या 64 बिट) पर उसके two's-complement बाइनरी और हेक्साडेसिमल प्रतिनिधित्व में एन्कोड करता है, और एक बाइनरी या हेक्स पैटर्न को वापस उस साइन्ड मान में डिकोड करता है जिसे वह दर्शाता है। यह पूरे में BigInt का उपयोग करता है, इसलिए 64-बिट मान बिना किसी प्रिसिज़न हानि के ठीक से संभाले जाते हैं।

N बिट की चौड़ाई के लिए साइन्ड परास −2^(N−1) से 2^(N−1)−1 है। एक दशमलव d को एन्कोड करने के लिए: यदि d गैर-ऋणात्मक है तो पैटर्न बस d है; यदि d ऋणात्मक है तो पैटर्न 2^N + d है (समतुल्य रूप से, |d| के सभी बिट उलटें और 1 जोड़ें)। टूल N-बिट शून्य-पैडेड बाइनरी, N/4-अंक हेक्स, one's complement (bitwise NOT), और उन्हीं बिट की unsigned व्याख्या निकालता है, और जब एक मान चयनित चौड़ाई में फ़िट नहीं होता तो एक overflow त्रुटि चिह्नित करता है।

डिकोड करने के लिए, एक बाइनरी या हेक्स पैटर्न पेस्ट करें और टूल इसका शीर्ष बिट पढ़ता है: यदि सबसे महत्वपूर्ण बिट सेट है तो मान pattern − 2^N (ऋणात्मक) है, अन्यथा यह स्वयं पैटर्न है। यह हमेशा साइन्ड और unsigned दोनों रीडिंग साथ-साथ दिखाता है, जो ठीक वही अस्पष्टता है जिसे two's complement हार्डवेयर स्तर पर हल करता है। सारी गणना आपके ब्राउज़र में स्थानीय है।

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

प्रत्येक बिट चौड़ाई के लिए परास क्या है?
N बिट की चौड़ाई −2^(N−1) से 2^(N−1)−1 तक साइन्ड मान दर्शाती है। इसलिए 8-बिट −128 से 127, 16-बिट −32768 से 32767, और 32-बिट लगभग ±2.1 बिलियन तक फैलता है। परास के बाहर के मान एक overflow चेतावनी ट्रिगर करते हैं।
एक ऋणात्मक संख्या कैसे एन्कोड होती है?
परिमाण लें, हर बिट उलटें (one's complement), और 1 जोड़ें। समतुल्य रूप से पैटर्न 2^N प्लस ऋणात्मक संख्या के बराबर है। उदाहरण के लिए 8 बिट में −1 11111111 है, और −42 11010110 है।
unsigned मान भी क्यों दिखाएँ?
वही बिट पैटर्न की दो रीडिंग होती हैं: साइन्ड (two's complement) और unsigned। दोनों दिखाना स्पष्ट करता है कि, उदाहरण के लिए, 8-बिट पैटर्न 11111111 साइन्ड में −1 है पर unsigned में 255 — व्याख्या इस पर निर्भर करती है कि हार्डवेयर इसे कैसे मानता है।
क्या यह 64-बिट मान ठीक से संभाल सकता है?
हाँ। कन्वर्टर मनमानी-प्रिसिज़न BigInt अंकगणित का उपयोग करता है, इसलिए 64-बिट पैटर्न और उनके साइन्ड मान बिना उस पूर्णांकन के ठीक से परिकलित होते हैं जिसे साधारण JavaScript संख्याएँ 2^53 से परे लाती हैं।

और टूल