java 反码.
比如说你写12,默认的就是int的12int是32位的?12=00000000 00000000 00000000 00001100~12=11111111 11111111 11111111 11110011
第二个问题,有符号整数是按照最高位判断正负的(java中的数值除了char都是有符号的,都符合这个规则),如果x最高位是1,那么该数是负数,其值为 -((~x)+1),因此11111111 11111111 11111111 11111111作为int型的话,因为最高位为1,所以其值为 -(0+1)=-1
根据上面的理论,~12=-(~(~12)+1)=-13
- - - ?- - - - - - - - - - - - - - - - - ?- - - - ?- - - - ?- - ?- - - - ?- - - ?- - - - - ?- - - -