इंट 32 से छोटे अभिन्न संख्या वाले सभी संचालन डिफ़ॉल्ट रूप से गणना से पहले 32 बिट्स तक बढ़ाए जाते हैं। परिणाम इंट 32 क्यों है इसे छोड़ने के लिए बस इसे छोड़ना है क्योंकि यह गणना के बाद है। यदि आप एमएसआईएल अंकगणितीय ऑपोड्स की जांच करते हैं, तो वे इंटी 32 और इंट 64 के साथ संचालित एकमात्र अभिन्न संख्यात्मक प्रकार हैं। यह "डिजाइन द्वारा" है।
यदि आप परिणाम को इंटेल 16 प्रारूप में वापस चाहते हैं, तो यदि आप कोड में कास्ट करते हैं तो यह अप्रासंगिक है, या संकलक (hypotetically) "हुड के नीचे" रूपांतरण को उत्सर्जित करता है।
इसके अलावा, उपरोक्त उदाहरण आसानी से डाली
short a = 2, b = 3;
short c = (short) (a + b);
दो नंबर 32 बिट का विस्तार होगा के साथ हल किया जा सकता है, घटाया मिलता है, फिर वापस 16 बिट तक छोटा कर दिया, जिसके कारण एमएस होने के लिए यह इरादा ।
कम (बाइट या) उपयोग करने का लाभ मुख्य रूप से (आदि स्ट्रीमिंग चित्रमय डेटा,) जहां डेटा की विशाल मात्रा में मामलों में भंडारण
पी.एस. है ओह, और लेख उन शब्दों के लिए "ए" है जिसका उच्चारण व्यंजन के साथ शुरू होता है, और उन शब्दों के लिए "ए" जिसका उच्चारण स्वरूप स्वर के साथ शुरू होता है। एक संख्या, एएन int।;)
स्रोत
2009-07-05 19:47:11
बीटीडब्लू: जो सही अनिश्चित लेख है? "ए" या "ए"? –
किसी भी प्रकार के दो मानों के जोड़ और घटाव एक परिणाम दे सकते हैं जो टाइप टी में फिट नहीं होता है। यह प्रश्न भी देखें: http://stackoverflow.com/questions/927391/why-is-a-cast-required -for-byte-subtraction-in-c – schnaader
यह प्रभावी रूप से http://stackoverflow.com/questions/941584 जैसा ही है, केवल विभिन्न प्रकारों और एक अलग ऑपरेटर के साथ। –