#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”、“有符号 char”和“无符号 char”视为字符,而不是8位整数。但是,“ char”、“有符号 char”和“无符号 char”都是整数类型。
所以我的问题是: 如何通过 cout 输出一个字符作为一个整数?
Static _ cast (...)很丑陋,需要更多的工作来修剪额外的位。