~按位取反_那些年错过的细节
~表示按位取反
通俗点讲,比如:
正数: int a = 10; System.out.println(~a);//-11 //0000 0000 0000 0000 0000 0000 0000 1010 写出10的二进制 //1111 1111 1111 1111 1111 1111 1111 0101 取反之后,最高位是1,说明是负数,需要对其取反在加一(符号位不变) //1000 0000 0000 0000 0000 0000 0000 1011 取反加一之后得出-11 负数: int a = -4; System.out.println(~a);//3 //负数的过程可以仿照正数,可以自己推算 由此可以得出结论:无论正负都有 ~a = -a - 1