Eup*_*mia 2 c# bit-manipulation bit-shift bit bitwise-operators
我不明白这个表达式是如何工作的.
~(1 << 1) = -3
Run Code Online (Sandbox Code Playgroud)
我所理解的是1 << 1的二进制值为10,基数为10的值.如何用NOT运算符得到-3?移位运算符如何与NOT运算符一起使用?
Jon*_*eet 11
按位逆运算符与此处的移位完全分开.
你已经开始输入10(二进制) - 它有一个完整的32位表示
00000000_00000000_00000000_00000010
Run Code Online (Sandbox Code Playgroud)
因此,按位反转是:
11111111_11111111_11111111_11111101
Run Code Online (Sandbox Code Playgroud)
...这是-3的二进制表示(32位二进制补码).