#include <iostream>
using namespace std;
int main()
{
char c1 = 0xab;
signed char c2 = 0xcd;
unsigned char c3 = 0xef;
cout << hex;
cout << c1 << endl;
cout << c2 << endl;
cout << c3 << endl;
}
मैं उत्पादन की उम्मीद इस प्रकार हैं:एक चरित्र को कोउट के माध्यम से एक पूर्णांक के रूप में कैसे आउटपुट करें?
ab
cd
ef
फिर भी, मैं कुछ भी नहीं मिला है।
मुझे लगता है कि ऐसा इसलिए है क्योंकि कोउट हमेशा 'चार', 'हस्ताक्षरित चार' और 'हस्ताक्षरित चार' को 8-बिट पूर्णांक के बजाय वर्णों के रूप में मानता है। हालांकि, 'चार', 'हस्ताक्षरित चार', और 'हस्ताक्षरित चार' सभी अभिन्न प्रकार हैं।
तो मेरा सवाल है: कैसे एक चरित्र को कोउट के माध्यम से एक पूर्णांक के रूप में आउटपुट करने के लिए?
पीएस: static_cast (...) बदसूरत है और अतिरिक्त बिट्स को ट्रिम करने के लिए और अधिक काम की आवश्यकता है।
afaik, कास्टिंग है ... (जैसे 'static_cast()') –
Nim
'int' करने के लिए इसे कास्टिंग? –
बीटीडब्ल्यू। "ट्रिमिंग" का सहारा लेने का एकमात्र कारण यह है कि आप स्पष्ट रूप से प्रकारों का सही ढंग से उपयोग नहीं कर रहे हैं (पहले दो * स्पष्ट * अतिप्रवाह) और परिणामस्वरूप आपको यही मिलता है। यदि आप हमेशा सही प्रकार का उपयोग करते हैं, तो कास्ट बस है, 'static_cast (...) '... –
Nim