मुझे पता है कि इसे 2 के पूरक और 1 को जोड़ने के साथ कुछ करना है, लेकिन मुझे वास्तव में नहीं मिलता है कि जब आप नकारात्मक संख्या में आते हैं तो आप बिट्स की समान मात्रा के साथ एक और संख्या को कैसे एन्कोड कर सकते हैं।
मुझे पता है कि इसे 2 के पूरक और 1 को जोड़ने के साथ कुछ करना है, लेकिन मुझे वास्तव में नहीं मिलता है कि जब आप नकारात्मक संख्या में आते हैं तो आप बिट्स की समान मात्रा के साथ एक और संख्या को कैसे एन्कोड कर सकते हैं।
जवाबों:
इसके बारे में इन शब्दों में सोचें। एक पूर्व संकेत के साथ 2-बिट संख्या लें:
000 = 0
001 = 1
010 = 2
011 = 3
चलो अब कुछ नकारात्मक हैं:
111 = -1
110 = -2
101 = -3
रुको, हमारे पास भी है
100 ...
यह नकारात्मक होना है, क्योंकि साइन-बिट 1. है, इसलिए, तार्किक रूप से, यह -4 होना चाहिए।
(संपादित करें: जैसा कि WorldEngineer ठीक-ठीक बताता है , सभी नंबरिंग सिस्टम इस तरह से काम नहीं करते हैं - लेकिन आप जो कर रहे हैं उसके बारे में पूछ रहे हैं।)
क्योंकि पूर्णांक सीमा में संख्याओं के दो वर्ग नहीं हैं, लेकिन तीन: ऋणात्मक संख्याएँ, शून्य और सकारात्मक संख्याएँ। शून्य को एक स्लॉट लेना होगा (शून्य का प्रतिनिधित्व करने में सक्षम नहीं होने के लिए अव्यवहारिक होगा ...), इसलिए या तो सकारात्मक या नकारात्मक वर्ग को एक स्लॉट छोड़ना होगा। तथ्य यह है कि यह आमतौर पर सकारात्मक सीमा है कि बलिदान करने के लिए एक निश्चित सीमा तक मनमाना है, लेकिन बिट जोड़तोड़ के स्तर पर कुछ चीजें हैं जो इस निर्णय को और अधिक सुविधाजनक बनाती हैं।
द्विआधारी में हस्ताक्षर किए गए पूर्णांक का प्रतिनिधित्व करने के तीन तरीके हैं: 2 का पूरक, 1 का पूरक और साइन-परिमाण। (द्विदिश बहुत समय पहले डोडो पक्षी के रास्ते पर चला गया था।)
1 के पूरक और संकेत-परिमाण में दो शून्य मान हैं, +0 और -0, प्रत्येक एक अद्वितीय प्रतिनिधित्व करता है। 2 के पूरक में केवल एक शून्य मान है, और एक प्रतिनिधित्व है।
अब, N बिट्स का एक क्षेत्र 2 ^ N मानों को एनकोड कर सकता है। 2 के पूरक में से एक को घटाएं, और आपके पास 2 ^ N-1 = 2 ^ (N-1) + 2 ^ (N-1) + 1. चूंकि शून्य के लिए प्रतिनिधित्व सभी शून्य बिट्स है, और + चिह्न शून्य है, वहाँ एक और अधिक संभव nonzero प्रतिनिधित्व के साथ हस्ताक्षर बिट के लिए 1 सेट होगा।
यह कहने का बहुत लंबा-चौड़ा तरीका है कि 2 का पूरक रेंज में मूल्यों का प्रतिनिधित्व करता है - (2 ^ (एन -1)) .. + (2 ^ (एन -1) - 1)।
यदि आप पूर्णांक डिजिटल सिग्नल प्रोसेसिंग कंप्यूटेशन कर रहे हैं तो 1 के पूरक का वास्तव में 2 के पूरक पर एक फायदा है। 1 का पूरक संचालन स्वाभाविक रूप से शून्य की ओर बढ़ता है। 2 का पूरक -infinity की ओर बढ़ता है। मैं इस एक तरह से सीखा ...