-1“无符号”右移10位后是怎么变成4194303的!

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 18:48   11   0

Java中增加了一种“无符号”右移操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0。这一操作符是C或C++中所没有的!

整数-1右移10位后怎么变成4194303的呢?原来,-1在32位计算机内采用补码表示后是:11111111111111111111111111111111,即32个1。再无符号右移10位只剩下22位1,因为高十位全是0,这样就变成1111111111111111111111,换算成整数就是4194303了!有兴趣的读者可以写一段程序测试一下!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP