フォーマット指定子 -1を16進数表示しようとしました、x%で そしたら ffffffff とでました。

C言語関連23閲覧

ベストアンサー

1

1人がナイス!しています

ThanksImg質問者からのお礼コメント

わかりやすい解説ありがとにゃ! 助かったにゃ

お礼日時:10/27 6:11

その他の回答(3件)

0

16進にはマイナスは無いので便宜上2の補数で実現します。 int型の-1を16進表示するとマイナス値は2の補数になるのでffffffffとなります。 (-1はffffffffでメモリに保存されている) マイナス付の16進で表示したいのなら工夫が必要です 例: #include<stdio.h> int main() { int s; printf(">"); scanf("%d",&s); if(s<0){ s *= -1; printf("-%xH\n",s); }else{ printf("%xH\n",s); } return 0; }

0

それって −1のことだけど。質問はどういう意味。 −2はfffffffeとなるはず。 −3はfffffffdとなるはず。 いろいろやってみてください。