バイトを16進数で入力すると:
0x10
それは同じですか:
~0x10
違いはなんですか?
~
単項ビット補数演算子です。C仕様の6.5.3.3でそれについてすべて読むことができますが、要するに、それは1つのオペランドで機能するため、単項です。ビットを反転します。さらに、オペランドで整数昇格を実行します。
したがって、あなたの場合、オペランドの値は 10 16で、これは 00010000 2です。これは 8 ビットしかないため、おそらくchar
型に含まれています。~
演算子を (整数昇格と組み合わせて)使用すると、1111111111101111 2になります (ビットが反転されました)。