जब एक पूर्णांक संख्या प्रकार की सीमा से बाहर होती है, तो अधिकतम मान + 1 जोड़ा/घटाया जाता है (उस सीमा पर निर्भर करता है जिस पर संख्या थी)। उदाहरण के लिए,सी अंतर्निहित रूपांतरण क्यों करते हैं जैसे वे करते हैं?
unsigned short num = 65537;
संख्या 1 के एक का मान (65536 घटाया गया था)। मेरा सवाल है: ऐसा क्यों होता है? मेरा अंतर्ज्ञान मुझे बताता है कि इसमें लेयर फ्लैग और ओवरफ्लो फ्लैग के साथ कुछ करना है, क्योंकि अधिकतम मान हमेशा 1111 है ....
अग्रिम धन्यवाद!
यह छंटनी करता है ... – Mehrdad
बिल्कुल सही उदाहरण है कि आपको मूल रूप से सभी संभव चेतावनियों को सक्षम क्यों करना चाहिए। हालांकि यह मानक में क्यों है .... कोई विचार नहीं: पी। (जब तक आप विशेष रूप से मतलब नहीं लेते हैं 1. यह सिर्फ 2 की तारीफ ओवरफ्लो है।) – Corbin
ऐसे चेतावनी संदेश का उदाहरण: 'चेतावनी: बड़े पूर्णांक को बिना हस्ताक्षर किए गए प्रकार के लिए संक्षिप्त रूप से छोटा कर दिया गया है' – curiousguy