हम कैसे जांच सकते हैं कि अंकगणितीय ऑपरेशन वास्तव में इसे लागू करने से पहले डेटा प्रकार की ऊपरी सीमाओं से अधिक होगा या नहीं।अंकगणितीय परिचालनों के लिए ओवरफ़्लो और रेंज जांच
जावा में छोटे के लिए upperbound कहते हैं कि मैं वास्तव में क्योंकि के बाद गुणा जवाब पहले से ही बहकर किया जाएगा और इस सवाल का जवाब -32,736 जो निश्चित रूप से छोटे से Short.MAX_VALUE
Short.MAX_VALUE
के साथ तुलना नहीं कर सकते 32767 है और मैं 328 * 100 गुणा कर रहा हूँ,
एक और उदाहरण लें कि मैं int
एक लूप में 17^10 (17 शक्ति के लिए 17) कंप्यूटिंग का मूल्य हूं। मुझे कैसे पता चलेगा कि मेरा जवाब किस स्तर पर बह गया है।
यह Short
और int
बात सिर्फ एक उदाहरण है। इस समस्या को बड़े समझने में सोचें कि सभी डेटा प्रकारों के लिए वास्तव में क्या किया जा सकता है।
मैंने googling की कोशिश की लेकिन कोई अच्छा लिंक नहीं मिला जो अवधारणा को समझने में मदद करता है।
एक बड़ा प्रकार और खिन्न का उपयोग करें:: अगले बड़े आदिम पूर्णांक प्रकार के इनपुट कास्ट और बड़े आकार में अंकगणित को निष्पादित
क्या आप चेतावनियां चाहते हैं? क्या आप अतिप्रवाह संख्या संतृप्त होना चाहते हैं? क्या आप इसे निष्पादन रोकना चाहते हैं? कोशिश करें {} पकड़ (integeroverflow) {} सहायक होना चाहिए –
@ tuğrulbüyükışık कोशिश-पकड़ यहां तस्वीर में नहीं आती है, अगर अपवाद फेंक दिया गया तो प्रोग्राम वहां और फिर ही रुक जाएगा। – Harshdeep
रुक गया नहीं है लेकिन हां –