读书人

java 反码

发布时间: 2012-09-22 21:54:54 作者: rapoo

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
- - - ?- - - - - - - - - - - - - - - - - ?- - - - ?- - - - ?- - ?- - - - ?- - - ?- - - - - ?- - - -

反码是将其2进制数每一位按位取反。即1改为0,0改为1.补码则不同。正数的补码是其源码本身负数的补码是其除符号位以外其他每一位按位取反再加一,符号位不变。例如:10进制数11:源码:00001011;反码:11110100;补码:00001011;十进制数-11:源码:10001011;反码:01110100;补码:11110101

读书人网 >编程

热点推荐