以下のコードは、ASCIIコードを文字から抽出しています。 通常のASCII領域の文字を変換すると、私は期待した値を得ています。 拡張領域から£と€を変換すると、文字を格納しているINTに1のパディングの荷重が掛かります。C++でASCIIコードを見たときに予期しない結果が発生しました
以下の出力は次のようになります。
45(予想通りアスキーE) FFFFFF80(拡張ASCII€期待が、ものとパディングとして)
それは私の問題を引き起こしていないが、これはなぜ起こるか私は思ったんだけど。 コードは...
unsigned int asciichar[3];
string cTextToEncode = "E€";
for (unsigned int i = 0; i < cTextToEncode.length(); i++)
{
asciichar[i] = (unsigned int)cTextToEncode[i];
cout << hex << asciichar[i] << "\n";
}
誰でも説明できますか? ありがとう
私は誤っている可能性がありますが、ユーロが拡張ASCII文字エンコーディングにあるとは思われません。http://www.asciitable.com/ –
おそらくWindows 1252か8ビットISOエンコーディングのいずれかです。 –
ASCII文字は 'unsigned int'sではありません。 http://en.wikipedia。org/wiki/ASCII – Johnsyweb