2009-12-31 17 views
6

सूर्य 'ट्यूटोरियल में यह एक बाइट के बारे में कहते हैं:जावा बाइट डेटा प्रकार

बाइट: बाइट डेटा प्रकार एक 8 बिट दो के पूरक पूर्णांक पर हस्ताक्षर किए है। इसका न्यूनतम मूल्य -128 है और अधिकतम मूल्य 127 (समावेशी) है। बाइट डेटा प्रकार बड़े सरणी में स्मृति को सहेजने के लिए उपयोगी हो सकता है, जहां स्मृति बचत वास्तव में मायने रखती है। इन्हें इंट के स्थान पर भी इस्तेमाल किया जा सकता है जहां उनकी सीमाएं आपके कोड को स्पष्ट करने में मदद करती हैं; तथ्य यह है कि एक चर की सीमा सीमित है दस्तावेज़ीकरण के रूप में काम कर सकते हैं।

यह स्मृति को कैसे बचाता है? 2 की तारीफ क्या है?

उत्तर

10

यह केवल आठ बिट स्टोरेज का उपभोग करके स्मृति को बचाता है, पूर्णांक के लिए 32 बनाम। सरणी का आकार निहित डेटाटाइप के आकार के लिए सीधे आनुपातिक है; पूर्णांक की एक सरणी बाइट्स की एक सरणी से चार गुना अधिक स्मृति (हैंडवेव) का उपभोग करेगी।

Wikipedia से

:

एक two's-प्रणाली पूरक या two's-पूरक गणित एक प्रणाली है जिसमें ऋणात्मक संख्याओं निरपेक्ष मूल्य के दो के पूरक का प्रतिनिधित्व करती हैं; 1 यह सिस्टम कंप्यूटर पर हस्ताक्षरित पूर्णांक का प्रतिनिधित्व करने की सबसे आम विधि है। [2] इस तरह की एक प्रणाली में, (सकारात्मक से नकारात्मक या इसके विपरीत) में परिवर्तित किया गया है, इसकी दो पूरक की गणना करके। एक एन-बिट दो'-पूरक संख्या प्रणाली श्रेणी 0^(एन -1) से + 2^(एन -1) -1 में पूर्णांक पूर्णांक का प्रतिनिधित्व कर सकती है।

0

बाइट्स केवल एक बाइट लंबे होने के कारण स्मृति को बचाता है, जबकि आमतौर पर उपयोग किए जाने वाले अधिकांश डेटा प्रकार 4 या 8 बाइट लंबे होते हैं।

ट्विस पूरक बाइनरी के रूप में हस्ताक्षरित संख्या को एन्कोड करने का लगभग सार्वभौमिक तरीका है। इस एन्कोडिंग में अच्छी संपत्ति होती है जो किसी भी मूल्य को बढ़ाने के लिए होती है जैसे कि यह केवल बाइनरी थी, आपको अगले पूर्णांक मान देता है, भले ही मान शून्य के माध्यम से गुजरता है। एक ही सीपीयू सर्किटरी हस्ताक्षरित या हस्ताक्षरित पूर्णांक की गणना कर सकते हैं।

2

दूसरी बात यह है कि, ज्यादातर ऐतिहासिक कारणों से, अधिकांश डेटा 8-बिट बाइट्स में टूट जाता है। यह कोई संख्या हो सकती थी, लेकिन 8-बिट कंप्यूटर वास्तव में लोकप्रिय थे जब चीजें वास्तव में मानकीकृत हो रही थीं, मुझे लगता है।

तो उदाहरण के लिए, पाठ को अक्सर 8-बिट बाइट प्रति अक्षर (ASCII मोड में) के साथ संग्रहीत किया जाता है। डेटा फ़ाइलों को अक्सर बाइट इंडेक्स को पॉइंटर्स का उपयोग करके अनुक्रमित किया जाता है। लोग किलोबाइट्स और मेगाबाइट्स के बारे में बात करते हैं, और उनका मतलब 1024 * 8 बिट्स है। या 2 * 8 बिट्स।

बाइट्स कई उद्देश्यों के लिए कंप्यूटिंग की सार्वभौमिक इकाई की तरह हैं। यदि आप अन्य प्रोग्रामों द्वारा पढ़ी जाने वाली मानक फ़ाइल को संपादित करना चाहते हैं, तो आपको शायद इसे बाइट [] में लोड करने की आवश्यकता होगी और किसी बिंदु पर व्यक्तिगत बाइट्स में हेरफेर करना होगा।

यदि सूर्य में बाइट डेटाटाइप शामिल नहीं था, तो अन्य प्रोग्रामों से डेटा या टेक्स्ट के साथ काम करने वाले जावा प्रोग्राम लिखना बहुत बड़ा दर्द होता। आपको पूर्णांक लोड करना होगा, और अलग-अलग बिट्स को अलग करने के लिए शिफ्ट और ऑपरेशन करना होगा, और इंडेक्स को हर समय 4 से विभाजित करना होगा। मज़ा नहीं।

तो बाइट्स को वास्तव में स्मृति को बचाने के लिए जोड़ा नहीं गया था, लेकिन संगतता के लिए।

क्योंकि बाइट में 2 = 256 संभावित मानों में से एक हो सकता है, सूर्य ने फैसला किया है कि उन्हें 127 के माध्यम से -128 को इंगित करना चाहिए, बल्कि 0 से 255 तक, क्योंकि वे दोनों हस्ताक्षरित और हस्ताक्षरित होने से निपटना नहीं चाहते थे संख्याएं (उनके सभी डेटाटाइप पर हस्ताक्षर किए गए हैं, और जावा में सी/सी ++ जैसे हस्ताक्षरित कीवर्ड नहीं हैं)

उन्होंने दो पूरक का उपयोग किया क्योंकि यह नकारात्मक संख्याओं से निपटने का मानक तरीका है।

संबंधित मुद्दे