1
私はバイトコードのために使用しているchar型の配列です。一つずつそれらをプリントアウトすることはあなたがここで見る同じヘクス値が得られるはずです:char配列が正しく初期化されていません
char toWrite[] = {'\x50','\x48','\xB8','\x00','\x00','\x00','\x00','\x00','\x00','\x00','\x00','\xFF','\xE0' };
私はループ内でこれらの値をプリントアウトしようとすると、しかし、彼らはマングルされています。代わりに表示されるのは:
50 48 ffffffb8 00 00 00 00 00 00 00 ffffffff ffffffe0
これらの文字が間違って印刷されるのはなぜですか?私は、foreachループで繰り返していて、一つ一つの要素がchar
が8ビット幅であり、符号付き整数型であり、ほとんどのシステムでは
cout << hex << (int)currentChar << endl;
1つのオプションは、 '(int型)(unsigned char型)currentChar、別々にキャストすることです' –
Cスタイルのキャストを推奨しないでください。static_castは、コンパイラに意図を伝えるために常に優先されるべきです。 – zett42