-3

バイトを16進数で入力すると:

0x10

それは同じですか:

~0x10

違いはなんですか?

4

2 に答える 2

0

~単項ビット補数演算子です。C仕様の6.5.3.3でそれについてすべて読むことができますが、要するに、それは1つのオペランドで機能するため、単項です。ビットを反転します。さらに、オペランドで整数昇格を実行します。

したがって、あなたの場合、オペランドの値は 10 16で、これは 00010000 2です。これは 8 ビットしかないため、おそらくchar型に含まれています。~演算子を (整数昇格と組み合わせて)使用すると、1111111111101111 2になります (ビットが反転されました)。

于 2013-04-02T13:34:30.367 に答える