右移位">>"操作符的问题 thinkjava第三版中说:带符号的右移位>>使用“根据正负号来扩展的规则:如果这个值是正的,则高位一律填零;如果这个值是负的,则高位一律填一。但是:System.out.println(-1>>1);输出的结果还是 -1这是为什么啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -1 在计算机中是用补码的形式存储的,也就是 0x FF FF FF FF,一共32个1,那么-1>>1,高位填1,这个数值仍然不变,还是-1 这里的-1是int型,占4字节,存在机器中用-1的补码表示:11111111 11111111 11111111 11111111,当-1右移时在内存中的数没有变化,所以输出仍为-1 -1 int原 1000 0000 0000 0000 0000 0000 0000 0001反 1111 1111 1111 1111 1111 1111 1111 1110补 1111 1111 1111 1111 1111 1111 1111 1111-1>>11111 1111 1111 1111 1111 1111 1111 1111 >>1 1111 1111 1111 1111 1111 1111 1111 1111 PPLive笔试题(刚出炉的) java调用IE解析html问题 在线求高手解答。 5行的小程序,有空的请看下。 这两种做法是否有效率差别?为什么?简单程序。 网页多开几次就打不开了 讨论个基础问题,关于APPLET 解决数据库的连接问题,高分赠送 一个城市高新开发区,信息化建设内容?? 欢迎有志于计算机书籍的翻译与写作的朋友加盟z-axix工作室! java文件编译后的.class 用打开方式 打了下+>记事本,不小心点了永久方式 ,后删了重新编译.JAVA文件,后的.class 文件,还是出现输出乱码.怎 数据库连接池的一些问题
那么-1>>1,高位填1,这个数值仍然不变,还是-1
,当-1右移时在内存中的数没有变化,所以输出仍为-1
原 1000 0000 0000 0000 0000 0000 0000 0001
反 1111 1111 1111 1111 1111 1111 1111 1110
补 1111 1111 1111 1111 1111 1111 1111 1111-1>>1
1111 1111 1111 1111 1111 1111 1111 1111 >>1 1111 1111 1111 1111 1111 1111 1111 1111