2010-09-06 12 views
39

मैं नीचे के रूप में संख्या की एक सूची है:सी में हेक्साडेसिमल संख्या कैसे प्रदर्शित करें?

0, 16, 32, 48 ...

मैं के रूप में हेक्साडेसिमल में उन संख्याओं उत्पादन की जरूरत है:

0000 , 0010,0020,0030,0040 ...

मैं कोशिश की है समाधान जैसे:

printf("%.4x",a); // where a is an integer 

लेकिन नतीजा यह है कि मुझे मिल गया है:

0000, 0001, 0002, 0003, 0004 ...

मुझे लगता है कि मैं वहाँ करीब हूँ। क्या कोई मदद कर सकता है क्योंकि मैं printf पर

धन्यवाद।

+5

'printf ("% d:% .4x \ n ", ए, ए) आज़माएं, 'मुझे लगता है कि आपके' ए 'में आपके पास वह मान नहीं है जो आपके पास है। –

+0

हाँ, आप सही हैं। मैं अनुपस्थित था। इस मूर्ख सवाल के लिए खेद है ... – root

उत्तर

86

प्रयास करें:

printf("%04x",a); 
  • 0 - वाम पैड शून्य के साथ संख्या (0) के बजाय रिक्त स्थान है, जहां गद्दी निर्दिष्ट किया जाता है की।
  • 4 (चौड़ाई) - न्यूनतम संख्या मुद्रित करने के लिए वर्ण। यदि मुद्रित होने वाला मान से कम है, तो परिणाम इस चौड़ाई के भीतर पर पैड वर्ण के साथ पैडिंग द्वारा सही उचित है। डिफ़ॉल्ट रूप से यह एक रिक्त स्थान है, लेकिन अग्रणी शून्य हमने को पैड चार के रूप में शून्य निर्दिष्ट किया है। यदि परिणाम बड़ा है तो भी मान को छोटा नहीं किया जाता है।
  • x - हेक्साडेसिमल पूर्णांक के लिए विशिष्ट।

अधिक here

+0

इसके परिणामस्वरूप: 0000, 0001, 0002, 0003, 0004 ... मुझे क्या चाहिए: 0000,0010,0020,0030,0040 ... – root

+0

यह मेरे लिए काम करता है। http://www.ideone.com/2VzY1 – codaddict

+0

हम्म, कितना अजीब ... मैंने कोशिश की लेकिन हमेशा 0000, 0001, 0002, 0003, 0004 के रूप में दिखाई दें (मैं उबंटू, जीसीसी में ग्रहण का उपयोग करता हूं ...) – root

0

आपका कोड कोई समस्या नहीं है। यह जिस तरह से आप चाहते हैं प्रिंट करें। मैं इस तरह इसका इस्तेमाल

printf("%04x",a); 
4

: वैकल्पिक रूप से, आप यह कर सकते हैं

printf("my number is 0x%02X\n",number); 
// output: my number is 0x4A 

बस संख्या "2" वर्ण आप प्रिंट करना चाहते हैं के किसी भी संख्या के लिए बदल;)

0

आप कर सकते हैं शून्य पैड के साथ 4 स्थानों में

#include<stdio.h> 
int main(int argc, char *argv[]){ 
    unsigned int i; 
    printf("decimal hexadecimal\n"); 
    for (i = 0; i <= 256; i+=16) 
     printf("%04d  0x%04X\n", i, i); 
    return 0; 
} 

यह दोनों दशमलव और हेक्साडेसिमल संख्याओं प्रिंट: निम्नलिखित स्निपेट कोड का उपयोग डिंग।