2009-05-10 15 views
11

मैं एक समारोह है कि रिक्त स्थान, टैब, नई-पंक्तियों, आदि सहित एक चरित्र है, के ASCII मान देता है की जरूरत है ...क्या कोई ऐसा फ़ंक्शन है जो किसी वर्ण के ASCII मान को लौटाता है? (C++)

एक ऐसी ही टिप्पणी पर, समारोह है कि षोडश आधारी, दशमलव के बीच धर्मान्तरित क्या है, और बाइनरी संख्या?

उत्तर

21
char c; 
int ascii = (int) c; 
s2.data[j]=(char)count; 

एक चार एक पूर्णांक, रूपांतरण कार्यों के लिए कोई जरूरत नहीं है।

शायद आप ऐसे कार्यों की तलाश कर रहे हैं जो एक स्ट्रिंग के रूप में पूर्णांक प्रदर्शित करते हैं - हेक्स, बाइनरी या दशमलव प्रस्तुतियों का उपयोग करते हुए? सिर्फ एक में बदलने -

3

आप अपने कोड में एक चरित्र की ASCII मूल्य प्राप्त करना चाहते हैं, बस उद्धरण में चरित्र

char c = 'a'; 
7

आप ASCII मूल्य प्राप्त करने के एक समारोह की जरूरत नहीं है डाल एक (छुपा हुआ) कलाकारों द्वारा पूर्णांक:

char buffer[32]; // make sure this is big enough! 
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345" 
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039" 
0123:

int x = 'A'; // x = 65 
int y = '\t'; // x = 9 

हेक्साडेसिमल या दशमलव के लिए एक नंबर बदलने के लिए, आप printf परिवार के सदस्यों के किसी भी उपयोग कर सकते हैं

बाइनरी में कनवर्ट करने के लिए कोई अंतर्निहित फ़ंक्शन नहीं है; आपको अपना खुद का रोल करना होगा।

2

आप आउटपुट के साथ आंतरिक प्रतिनिधित्व को भ्रमित कर सकते हैं। यह देखने के लिए एक चरित्र है क्या मूल्य:

char c = 'A'; 
cout << c << " has code " << int(c) << endl; 
इसी हेक्स valuwes लिए

- सभी नंबरों को हेक्साडेसिमल संख्याओं हैं, तो यह उत्पादन का सवाल है:

int n = 42; 
cout << n << " in hex is " << hex << n << endl; 

"हेक्स" आउटपुट बयान में है एक सी ++ मैनिपुलेटर। हेक्स और दशमलव (डीसी) के लिए मैनिपुलेटर्स हैं, लेकिन दुर्भाग्य से बाइनरी के लिए नहीं।

0

जहां तक ​​हेक्स & बाइनरी - वे केवल पूर्णांक के प्रतिनिधित्व हैं। आप शायद जो चाहते हैं वह printf ("% d", n), और printf ("% x", n) जैसा है - पहला दशमलव प्रिंट करता है, दूसरा उसी नंबर का हेक्स संस्करण होता है। स्पष्ट करें कि आप क्या करने का प्रयास कर रहे हैं -