printf("%02X¥n", 0x80);
とやると、普通に
80
と表示されます。
ところが、
char ch = 0x80;
printf("%02X¥n", ch);
とやると、アレレ
FFFFFF80
と表示されてしまいます。
実はこれ、chが signed charで宣言されているのが原因ですね。
unsigned char 0x80;
printf("%02X¥n", ch);
とやると、ちゃんと
80
と表示されます。
今日ちょっと仕事が溜まって焦ってた時にこれでハマってしまいました。いや、冷静になって考えればすぐにわかるようなことなんですけどね...仕事は気持ちに余裕をもつことが大事ですね...と。
0 件のコメント:
コメントを投稿