读书人

关于二进制取反的有关问题

发布时间: 2013-04-07 12:50:11 作者: rapoo

关于二进制取反的问题
public class Test{
public static void main(String args[]){
int i = 0xFFFFFFF1;
int j=~i;
System.out.println(j);
}

}

为什么这个程序运行之后j=14。我知道i=-15,可就是在int j=-i这里不知道怎么算的,请各位帮我解决。说出详细的计算过程。
[解决办法]
~这是取反操作符,是按照One's Complement的法则计算的

http://en.wikipedia.org/wiki/Ones%27_complement

在二进制数的基础上操作取反

i=0xFFFFFFF1=1111 1111 1111 1111 1111 1111 1111 0001
对i取反
~i=0000 0000 0000 0000 0000 0000 0000 1110=14

读书人网 >J2SE开发

热点推荐