Range of values of C types -


सी मानक में लिखा जाता है, अर्थात्, एक int होना चाहिए: < ul>

  • min-32767 अधिकतम 32767

    लेकिन कार्यान्वयन में, यानी 16 बिट मशीन पर मान हैं:

    • min-32768 अधिकतम 32767

      नकारात्मक मूल्यों में यह अंतर क्यों है?

      दोनों श्रेणियां मान्य है, असामान्य क्या पहला है [-32767 ... 32767] लेकिन यह सी मानक के अनुसार बिल्कुल सही है।

      कई implementations में कम के लिए न्यूनतम मूल्य पूर्णांक है - (2 ^ 15 - 1) फिर -32768 । आप इसे परिभाषित करेंगे:

        #define SHRT_MIN 0x7FFF #define SHRT_MIN (-32767 - 1) #define SHRT_MIN (-32768)   

      मानक यह मानता है कि यह (- 2 ^ 15 + 1) (तब -32767 ) या कम होना चाहिए (क्योंकि वास्तविक मूल्य निर्भर करता है विशिष्ट प्रणाली और पुस्तकालय कार्यान्वयन पर )। चूंकि अधिकांश कार्यान्वयन नकारात्मक अंकों का प्रतिनिधित्व करने के लिए दो पूरक का उपयोग करती है (जब शून्य पूर्णांक के लिए अहस्ताक्षरित हो जाता है ) तो न्यूनतम नकारात्मक मूल्य एक इकाई कम है। व्यवहार में इसका मतलब है कि आप यह सुनिश्चित कर सकते हैं कि जब आप अपने कार्यक्रम (कंपाइलर और प्लेटफ़ॉर्म की परवाह किए बिना) लिखते हैं तो कम से कम आप -32767 को एक short में संग्रहीत कर सकते हैं (लेकिन कुछ के लिए कंपाइलर / प्लेटफॉर्म श्रेणी विस्तृत हो सकती है जैसा कि आपने अपने कंपाइलर में देखा था।)

      कृपया ध्यान दें कि इस मामले में -32768 समझ में आता है (प्लेटफॉर्ड्स के लिए जहां sizeof (int) & gt; आकार (छोटा) ), जैसा MIN_INT नहीं है, क्योंकि वाकई वास्तव में एक int (कोई छोटा नहीं है) ।

  • Comments

    Popular posts from this blog

    Java - Error: no suitable method found for add(int, java.lang.String) -

    java - JPA TypedQuery: Parameter value element did not match expected type -

    c++ - static template member variable has internal linkage but is not defined -