आइए जावा आदिम डेटा प्रकारों को संक्षेप में शुरू करते हैं:
बाइट : बाइट डेटा प्रकार एक 8-बिट हस्ताक्षरित दो के पूरक पूर्णांक है ।
लघु : लघु डेटा प्रकार एक 16-बिट हस्ताक्षरित दो के पूरक पूर्णांक है ।
int: इंट डेटा प्रकार एक 32-बिट हस्ताक्षरित दो के पूरक पूर्णांक है ।
लंबा: लंबा डेटा प्रकार एक 64-बिट हस्ताक्षरित दो के पूरक पूर्णांक है ।
फ्लोट: फ्लोट डेटा प्रकार एक एकल-सटीक 32-बिट IEEE 754 फ़्लोटिंग पॉइंट है ।
डबल : डबल डेटा प्रकार एक डबल-सटीक 64-बिट IEEE 754 फ़्लोटिंग पॉइंट है ।
बूलियन: बूलियन डेटा प्रकार एक बिट जानकारी का प्रतिनिधित्व करता है ।
char: char डेटा प्रकार एक एकल 16-बिट यूनिकोड वर्ण है ।
स्रोत
दो का अनुपूरण
"अच्छा उदाहरण विकी से है कि दो के पूरक का संबंध 256 = 255 + 1 को देखते हुए महसूस किया जाता है, और (255 - x) x का पूरक है।
0000 0111 = 7 दो का पूरक 1111 1001 = -7 है
जिस तरह से यह काम करता है वह एमएसबी (सबसे महत्वपूर्ण बिट) है इसलिए उपरोक्त मामले में नकारात्मक मूल्य प्राप्त होता है
-7 = 1001 = -8 + 0+ 0+ 1
सकारात्मक पूर्णांक आमतौर पर सरल बाइनरी संख्याओं के रूप में संग्रहीत होते हैं (1 है 1, 10 2 है, 11 3 और इसी तरह)।
ऋणात्मक पूर्णांकों को उनके पूर्ण मूल्य के पूरक के रूप में संग्रहीत किया जाता है। एक सकारात्मक संख्या का पूरक दो है जब यह अंकन एक ऋणात्मक संख्या का उपयोग करता है।
स्रोत
चूंकि मुझे इस उत्तर के लिए कुछ अंक मिले, इसलिए मैंने इसमें और जानकारी जोड़ने का फैसला किया।
एक अधिक विस्तृत जवाब:
बाइनरी में सकारात्मक और नकारात्मक संख्याओं का प्रतिनिधित्व करने के लिए अन्य चार मुख्य दृष्टिकोण हैं:
- हस्ताक्षरित परिमाण
- एक के पूरक
- दो का अनुपूरण
- पक्षपात
1. हस्ताक्षरित परिमाण
संकेत का प्रतिनिधित्व करने के लिए सबसे महत्वपूर्ण बिट का उपयोग करता है, शेष बिट्स का उपयोग निरपेक्ष मूल्य का प्रतिनिधित्व करने के लिए किया जाता है। जहां 0 एक सकारात्मक संख्या का प्रतिनिधित्व करता है और 1 नकारात्मक संख्या का प्रतिनिधित्व करता है , उदाहरण:
1011 = -3
0011 = +3
यह प्रतिनिधित्व सरल है। हालाँकि, आप बाइनरी संख्याओं को उसी तरह नहीं जोड़ सकते हैं जैसे आप दशमलव संख्याओं को जोड़ते हैं, जिससे हार्डवेयर स्तर पर इसे लागू करना कठिन हो जाता है। इसके अलावा, यह दृष्टिकोण 0, 100 ... 0 और 0 .... 0 का प्रतिनिधित्व करने के लिए दो बाइनरी पैटर्न का उपयोग करता है।
2. एक का पूरक
इस निरूपण में, हम दिए गए संख्या के सभी बिट्स को इसके पूरक का पता लगाने के लिए उल्टा करते हैं। उदाहरण के लिए:
010 = 2, so -2 = 101 (inverting all bits).
इस प्रतिनिधित्व की समस्या यह है कि अभी भी 0 (00..0 और 11..1) का प्रतिनिधित्व करने के लिए दो बिट पैटर्न मौजूद हैं
3. दो का पूरक
एक संख्या का नकारात्मक पता लगाने के लिए, इस प्रतिनिधित्व में, हम सभी बिट्स को उल्टा करते हैं और फिर एक बिट जोड़ते हैं। एक बिट जोड़ने से दो बिट्स पैटर्न का प्रतिनिधित्व करने की समस्या हल होती है। इस प्रतिनिधित्व में, हमारे पास केवल एक (00 ... 0) है।
उदाहरण के लिए, हम 4 बिट्स का उपयोग करके 4 (दशमलव) के द्विआधारी ऋणात्मक प्रतिनिधित्व को खोजना चाहते हैं। सबसे पहले, हम 4 को बाइनरी में बदलते हैं:
4 = 0100
तो हम सभी बिट्स पलटना
0100 -> 1011
अंत में, हम एक बिट जोड़ते हैं
1011 + 1 = 1100.
तो 1100 दशमलव में -4 के बराबर है अगर हम 4 बिट्स के साथ दो के पूरक बाइनरी प्रतिनिधित्व का उपयोग कर रहे हैं।
पूरक को खोजने का एक तेज़ तरीका पहला बिट को ठीक करना है जो मान 1 के रूप में है और शेष बिट्स को निकालना है। उपरोक्त उदाहरण में यह कुछ इस तरह होगा:
0100 -> 1100
^^
||-(fixing this value)
|--(inverting this one)
दो के पूरक प्रतिनिधित्व, 0 के लिए केवल एक प्रतिनिधित्व होने के अलावा, यह दो द्विआधारी मूल्यों को भी उसी तरह जोड़ता है जैसे दशमलव में, यहां तक कि विभिन्न संकेतों के लिए भी संख्या। फिर भी, अतिप्रवाह मामलों की जांच करना आवश्यक है।
4. बायस
इस प्रतिनिधित्व का उपयोग अस्थायी बिंदुओं के लिए IEEE 754 मानदंड में प्रतिपादक का प्रतिनिधित्व करने के लिए किया जाता है। इसका यह लाभ है कि सभी बिट्स के साथ बाइनरी मान शून्य तक का प्रतिनिधित्व करता है। और 1 से सभी बिट्स के साथ द्विआधारी मूल्य सबसे बड़े मूल्य का प्रतिनिधित्व करता है। जैसा कि नाम से संकेत मिलता है, मान द्विआधारी (सकारात्मक या नकारात्मक) में एक बिट्स के साथ बायस (सामान्य रूप से 2 ^ (एन -1) या 2 ^ (एन -1) -1) के साथ होता है।
इसलिए अगर हम 8 बिट्स का उपयोग कर रहे हैं, तो दशमलव में मान 1 को द्विआधारी में 2 ^ (n-1) का उपयोग करके दर्शाया जाता है, मान द्वारा:
+1 + bias = +1 + 2^(8-1) = 1 + 128 = 129
converting to binary
1000 0001