#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は常に文字ではなく、8ビット整数として「文字」、「signed char型」と「unsigned char型」を扱うためであると思います。ただし、 'char'、 'signed char'、および 'unsigned char'はすべて整数型です。
だから私の質問は次のとおりです。COUTて整数として出力する方法文字?
PS:static_castを(...)は醜いですし、余分なビットをトリミングするより多くの作業が必要。
は、私の知る限りで、キャストが最も効果的な方法です...(例えば '')(ををstatic_cast) –
Nim
int' 'にキャスト? –
btw。あなたが "トリミング"に頼る必要がある唯一の理由は、タイプを正しく使用していないことです(最初の2つ*はっきりとオーバーフローします)。これが結果として得られます。あなたは常に正しい型を使用した場合、キャストは、単純である、 'static_castを(...)' ... –
Nim