2011-08-07 8 views
5

नीचे दिए गए कार्यक्रम में,सीए प्रोग्राम में 0xFE का क्या अर्थ है?

void main() 
{ 

     int x=0xFE; 

     int y=0xF3; 
     ..... 
} 

क्या मूल्यों x=0xFE और y=0xF3 द्वारा आवंटित कर रहे हैं? 0x क्या दर्शाता है?

+1

उम .. [254] (http://en.wikipedia.org/wiki/254_%28number%29) और [243] (http://en.wikipedia.org/wiki/243_%28number%29)? – cnicutar

+2

मेरा व्यावहारिक उत्तर है: 'printf' का उपयोग करें :) –

उत्तर

14

0x साथ एक मूल्य के लेखन का मतलब है इससे पहले कि यह hexadecimal notation, जहां संख्या 0-9 और अतिरिक्त "संख्या" वायुसेना बेस 16. इस बात का बड़ा लाभ के साथ एक अंक प्रणाली की प्राप्त करने के लिए उपयोग किया जाता है में लिखा है प्रत्येक हेक्साडेसिमल कि अंक बिल्कुल 4 बिट्स का प्रतिनिधित्व करता है।

0xFE = 254 
0xF3 = 243 

तो एक्स = 254 और y = 243

+0

एक्स और वाई में क्या मूल्य आवंटित किया जाएगा? – Nitin

+3

@downvoter: कृपया समझाएं। –

+0

@Nitin: उत्तर यह कहता है: x को 254 असाइन किया जाएगा, y को 243 असाइन किया जाएगा। '0xFE' और' 254' बिल्कुल वही संख्या है, केवल '0xFE' हेक्साडेसिमल नोटेशन है, और '254' दशमलव नोटेशन है । IOW, '0xFE' '254' लिखने का एक और तरीका है। यहां और अधिक: http://en.wikipedia.org/wiki/Hexadecimal –

2

मूल्यों के बाद से वे 0x पहचानकर्ता से पहले कर रहे हैं हेक्साडेसिमल में कर रहे हैं। मानों को परिवर्तित करने के लिए, आप प्रोग्रामर मोड या Google पर अपने कंप्यूटर कैलकुलेटर का उपयोग कर सकते हैं। http://screensnapr.com/v/aQEPYk.png

+1

क्या कोई भी पेंसिल और पेपर के साथ बेस 16-टू-बेस 10 रूपांतरण नहीं करता है? :) –

+1

क्या कोई इसे अपने सिर में नहीं करता है? यदि आप 16 के अपने गुणक जानते हैं तो यह 2-3 अंकों के लिए बहुत आसान है ... –

+0

@R: ठीक है, त्वरित, कोई धोखाधड़ी नहीं - दशमलव में 0x0D92 क्या है? –

6

संख्याओं को विभिन्न तरीकों से प्रदर्शित किया जा सकता है। सी में, आप दशमलव (उदा। 243), ऑक्टल (उदा। 0363) या हेक्साडेसिमल (0xF3) का उपयोग कर सकते हैं।

आप 243 लिखते हैं, आप

243 = 2*10^2 + 4*10^1 + 3*10^0 = 2*100 + 4*10 + 3 = 243 

जहां ^ "की शक्ति के लिए" का अर्थ है मतलब है। इसका मतलब है कि हमारी सामान्य संख्या आधार 10 या दशमलव हैं। हेक्साडेसिमल बेस 16 का उपयोग करता है, और अंक ABCDEF हैं, जहां 0 = 0, ... 9 = 9, ए = 10, बी = 11, ... एफ = 15। तो 243 को

0xF3 = 15*16^1 + 3*16^0 = 15*16 + 3 = 243 

के रूप में भी लिखा जा सकता है जो आप देखते हैं। दूसरे शब्दों में, 0xF3 243 लिखने का एक और तरीका है, और 0xFE 254 (15 * 16 + 14 = 254) लिखने का एक और तरीका है।

लाभ यह है कि प्रत्येक हेक्साडेसिमल अंक 4 बिट्स का प्रतिनिधित्व करता है, इसलिए 2 हेक्साडेसिमल अंकों का उपयोग बाइट को प्रदर्शित करने के लिए किया जा सकता है। यदि आप जानते हैं कि 0x0 बाइनरी में 0000 है, और इसी तरह, 0xF तक, जो बाइनरी में 1111 है, एक अनुभवी उपयोगकर्ता बाइट में बिट्स को आसानी से "देख" सकता है।

एफडब्ल्यूआईडब्ल्यू, ऑक्टल बेस 8 में है, इसलिए केवल अंकहैं। मुझे हमेशा इसका उपयोग करने के लिए थोड़ा अजीब लगता है।

संबंधित मुद्दे