मुझे इस कोड स्निपेट पर हैरान हूं:
#include & lt; climits & gt; # शामिल करें & lt; iostream & gt; Int main (शून्य) {नामस्थान std; Cout & lt; & lt; "लम्बे अधिकतम" & lt; & lt; LONG_MAX & lt; & lt; endl; लंबे x = 2 * 1024 * 1024 * 1024; Cout & lt; & lt; "2 * 1024 * 1024 * 1024 =" & lt; & lt; एक्स एंड एलटी; & lt; endl; वापसी 0; } मैं 2147483648 की अपेक्षा कर रहा था, इसके बजाय मैं मिल रहा हूं अहस्ताक्षरित का उपयोग करने में मदद नहीं लगता है क्या देता है? लंबी अधिकतम 9223372036854775807 2 * 1024 * 1024 * -20 = 2147483648
कुछ एल एस * जोड़ें लंबे x = 2L * 1024L * 1024L * 1024L; (तकनीकी रूप से, जब तक एक शब्द का शाब्दिक प्रकार लंबा होता है अन्य को पदोन्नत किया जाएगा लंबा ) अतिप्रवाह होता है क्योंकि 2 , आदि प्रकार डिफ़ॉल्ट रूप से int होता है और अतिप्रवाह होता है असाइनमेंट से पहले देखें जो विभिन्न लीटरल्स को बताते हैं।
No comments:
Post a Comment