#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
それでも、私は何も得ませんでした。
これは、cout が常に 'char'、'signed char'、および 'unsigned char' を 8 ビット整数ではなく文字として扱うためだと思います。ただし、「char」、「signed char」、および「unsigned char」はすべて整数型です。
だから私の質問は: cout を介して文字を整数として出力する方法は?
PS: static_cast(...) は醜く、余分なビットを削除するにはさらに作業が必要です。