के लिए भिन्न होते हैं निम्नलिखित दो ऑपरेशन जावा में x = 31
या 32
के लिए अलग-अलग परिणाम क्यों प्राप्त करते हैं लेकिन x=3
के लिए समान परिणाम क्यों हैं?जावा परिणाम (int) Math.pow (2, x) और 1 << x
int x=3;
int b = (int) Math.pow(2,x);
int c = 1<<x;
परिणाम:
x=32: b=2147483647; c=1;
x=31: b=2147483647; c=-2147483648;
x=3: b=8 ; c=8
एक सूक्ष्म अंतर यह है कि पॉव() ** बहुत ** धीमा है, भले ही उत्तर समान हो। पाउ() में गोलाकार त्रुटि है, जबकि 'int' में अतिप्रवाह है। आप '1L << 32' का प्रयास कर सकते हैं जो' 2147483648' –