#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;
}
我預期的產量如下:如何通過cout將整個字符輸出爲整數?
ab
cd
ef
然而,我什麼也沒得到。
我想這是因爲cout始終將'char','signed char'和'unsigned char'視爲字符而不是8位整數。但是,'char','signed char'和'unsigned char'都是整型。
所以我的問題是:如何通過cout輸出一個字符爲整數?
PS:static_cast(...)是醜陋的,需要更多的工作來修剪額外的位。
據我所知,鑄造是最有效的方法...(例如'的static_cast()') –
Nim
它鑄造成'int'? –
btw。你需要採取「修整」的唯一原因是你顯然沒有正確使用類型(前兩個*清楚*溢出),這就是你得到的結果。如果你總是使用正確的類型,那麼演員陣容就是:'static_cast(...)'...... –
Nim