#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" и "unsigned char" как символы, а не 8-битные целые числа. Однако "char", "подписанный char" и "unsigned char" - все целые типы.
Итак, мой вопрос: как вывести символ как целое через cout?
PS: static_cast (...) является уродливым и требует больше работы для обрезки дополнительных бит.