2013-06-02 8 views
9

सी में: एक पता को देखते हुए (हेक्सा में) और और int n, मैं पता से शुरू पहले n बाइट्स कैसे मुद्रित कर सकते हैं? मैंने एक तेज Google खोज चलाई है, लेकिन मुझे कोई प्रासंगिक जानकारी नहीं मिली है, और मुझे यकीन नहीं है कि क्या कोई विशेष फ़ंक्शन है जो इसे करता है या मुझे सिस्टम कॉल का उपयोग करना चाहिए?प्रिंट बाइट्स

धन्यवाद!

+1

'कॉन्स्टिनेटेड char * p = 0xdeadbeef; के लिए (int i = 0; i

उत्तर

7
int n=<num_of_bytes>, i =0; 
unsigned char* byte_array = address; 

while (i < n) 
{ 
    print("%02X",(unsigned)byte_array[i]); 
    i++; 
} 

या यहाँ stackoverflow पर अन्य लोगों से वास्तव में एक अच्छा डुप्लिकेट जवाब है: How to visualize bytes with C/C++

+0

hexeditplus.c: 114: 3: त्रुटि: अज्ञात प्रकार का नाम 'बाइट' – TheEmeritus

+0

चार और बाइट - http://stackoverflow.com/questions/13819820/char-vs-byte-for-byte-arrays ने अभी किया आपके लिए छोटा संपादन .. यह संकलित नहीं हुआ है और आप परेशान हैं .. –

+0

@DoryZidon हां, वे करते हैं, और वे उम्मीद करते हैं कि हम उनके लिए एक हेक्स संपादक लिखें ([/ deduction_guessed_from_filename]) –

4

आप जानते हैं कि आप "कानूनी" कि उसके बाद पता करने के लिए उपयोग और n-1 बाइट्स है, तो आप यह

int i; 
char *address=0x412AFB213; //your address 

for(i=0;i<n;i++) 
    printf("%d\n",*address++); 

लेकिन आमतौर पर (लगभग हमेशा) आपके पास यह "कानूनी" पहुंच नहीं होगी।