文字のHEX表示

[戻る]
snow 2002/09/30(月) 10:04:11
void main()
{
    char ctmp[3];

    scanf( "%s", ctmp );   // ここで”あ”を入力

    printf( "%.02x\n", ctmp[0] );
    printf( "%.02x\n", ctmp[2] );
}

出力結果
ffffffa4
ffffffa2

となってしまいます。2バイト文字を4桁のHEXで表現しいのですが、
先頭がどうしてもffffffがついてしまいます。
a4a2と出力する方法を教えてください。

dairygoods 2002/09/30(月) 10:57:18
charの範囲は、-128〜127で、0xa4=164ですから、
オーバーフローして-92になってしまうためです。
unsigned char ctmp[3];
としましょう。

snow 2002/09/30(月) 11:25:42
[[解決]]
>dairygoods

解決しました。
ありがとうございました。

古いスレッドには追加発言できません。