c - Specify a number literal as 8 bit? -


  अहस्ताक्षरित चार एएससीआई; Int a = 0; चार स्ट्रिंग [4] =   "foo"  ; "ए 1" ascii = (स्ट्रिंग [ए] - 'ए' + 10) * 16;   

चेतावनी: 'अहस्ताक्षरित चार' से रूपांतरण 'इंट' इसका मान बदल सकता है

ऐसा लगता है कि जीसीसी वर्णों और संख्याओं को मूलभूत रूप से int के रूप में मानता है। मुझे पता है मैं अभिव्यक्ति (अहस्ताक्षरित चार) को अभिव्यक्त कर सकता था, लेकिन मैं कैसे चार शाब्दिक शब्दों और संख्यात्मक शब्दों को बिना डाले बिना 8 बिट के रूप में निर्दिष्ट कर सकता हूं?

एक समान समस्या:

आंशिक अंश डिफ़ॉल्ट रूप से डबल माना जाता है लेकिन इन्हें फ़्लोट करने के लिए निर्दिष्ट किया जा सकता है:

  3.1f  

इसलिए, 3.1 को डबल के बजाए फ्लोट माना जाएगा। < / Code>, सी में, आप int से भी कम में गणना नहीं कर सकते हैं

<पूर्व> char a = '8' - '0'; / * '8' इंट * / चार ए = (चार) '8' - '0'; / * (चार) '8' घटाकर `इंट 'में परिवर्तित किया जाता है * घटाकर * / char a = (चार)' 8 '- (चार)' 0 '; / * दोनों (चार) '8' और (चार) '0' कनवर्ट किए गए हैं * /

Comments