我们都知道单目运算符“~”表示对数的每一位取反,~num = -(num+1)。
如:~5=-6,为什么是-6?
现在的机器大多数都为32位机,所以5的二进制表示是:
00000000 00000000 00000000 00000101
取反后为:
11111111 11111111 11111111 11111010
再转换为10进制:
首位是1,说明是负数,负数是以补码的方式在机器中表示,所以转换为原码后为:
10000000 00000000 00000000 00000110
这就是十进制的-6!
同理,如果是-2,则~(-2) = 1
因为-2的二进制表示为:
11111111 11111111 11111111 11111110
取反后为:
00000000 00000000 00000000 00000001
转换为10进制就是1。