Java中增加了一种“无符号”右移操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0。这一操作符是C或C++中所没有的!
整数-1右移10位后怎么变成4194303的呢?原来,-1在32位计算机内采用补码表示后是:11111111111111111111111111111111,即32个1。再无符号右移10位只剩下22位1,因为高十位全是0,这样就变成1111111111111111111111,换算成整数就是4194303了!有兴趣的读者可以写一段程序测试一下!
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
QQ咨询|关于我们|Archiver|手机版|小黑屋|( 辽ICP备15012455号-4 ) Powered by 期权论坛 X3.2 © 2001-2016 期权工具网&期权论坛 Inc.
下载期权论坛手机APP