首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2013-04-07 
关于二进制取反的问题public class Test{public static void main(String args[]){int i 0xFFFFFFF1int

关于二进制取反的问题
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

热点排行