1. ホーム
  2. c

[解決済み] xと〜の有意性

2022-03-03 15:30:44

質問

int m=32
printf("%x" , ~m);

この文の出力は ffdf であり ~ の出力は 20 . の意味は何ですか? %x~ ?

解決方法は?

その ~ 演算子はビット単位の否定です。のビット単位の否定を表示します。 m の値です。 %x というのは printf はその値を16進数で出力します。

そのため、値 0xffdf の否定です。 0x20 (32).

値32(intビットはそうなる)。

0000 0000 0010 0000

そのビット単位の否定は、次のようになります。

1111 1111 1101 1111

から意味がある。

1111 1111 = 0xff

そして

1101 1111 = 0xdf