2013-07-19 5 views
5
long l2 = 32; 

जब मैं ऊपर बयान का उपयोग करें, मैं एक त्रुटि नहीं मिलता है, लेकिन जब मैं नीचे बयान का उपयोग, मैं इस मिल त्रुटि:(मैं अंत में <code>l</code> इस्तेमाल किया नहीं था) लंबे समय से चर घोषणा में पत्र एल का उपयोग

The literal 3244444444 of type int is out of range

long l2 = 3244444444; 

अगर मैं long l2 = 3244444444l; उपयोग करते हैं, तो कोई त्रुटि है।

इसका कारण क्या है? लंबे चर के लिए एल का प्रयोग अनिवार्य नहीं है।

उत्तर

6

3244444444 एक शाब्दिक पूर्णांक के रूप में व्याख्या की है, लेकिन एक 32-बिट int चर में फिट नहीं कर सकते। यह एक शाब्दिक लंबे मूल्य होने की जरूरत है, तो यह अंत में एक l या L की जरूरत है:

long l2 = 3244444444l; // or 3244444444L 

और जानकारी:

  • Primitive Data Types, विशेष रूप से डिफ़ॉल्ट मान और Literals वर्गों ।
+1

लेकिन मैं के रूप में long.How यह पूर्णांक के रूप में व्याख्या – PSR

+0

@PSR चर, पूर्णांक है शाब्दिक मान 'int' रूप में व्याख्या की है और जब' long' चर करने के लिए आवंटित किया जा रहा यह हो जाएगा की घोषणा की एक ' लंबा मूल्य अधिक जानकारी के लिए मेरे उत्तर में दिए गए लिंक का संदर्भ लें। –

+0

मदद के लिए धन्यवाद – PSR

0

ध्यान दें कि जब पूर्णांक शाब्दिक हो जाएगा लंबे समय तक ऑटो चौड़ी जब एक लंबे चर को सौंपते समय, आप जब वह यह है कि

  1. Integer.MAX_VALUE (2147483647) से अधिक मूल्य को व्यक्त करने के लिए कोई स्पष्ट लंबे शाब्दिक का उपयोग करने की आवश्यकता होगी

    (या)

  2. Integer.MIN_VALUE (-2147483648) की तुलना में कम:

    long x1 = 12; //OK 
    long x2 = 2147483648; // not OK! That's not a valid int literal 
    long x3 = 2147483648L; // OK 
    
संबंधित मुद्दे