首页 > 试题广场 >

下面代码执行后的结果是( ) public class De

[单选题]
下面代码执行后的结果是(      )
public class Demo {
     public static void main(String args[]) {
        int x,y;
        x = 21 >> 2;
        y = x >>> 2;
        System.out.println(y);
    }
}   
  • 0
  • 1
  • 2
  • 5
1. 计算x的值(x = 21 >> 2) - 21的二进制表示为 00010101 (正数,高位补0)。 - 右移2位(>>):高位补符号位(正数补0),结果为 00000101 ,对应十进制5。即 x = 5 。 2. 计算y的值(y = x >>> 2) - x=5的二进制为 00000101 。 - 无符号右移2位(>>>):无论正负,高位均补0,结果为 00000001 ,对应十进制1。 答案:y = 1
发表于 2025-08-01 08:59:24 回复(0)
>> 带符号右移 移动2位后最前面补 正数补两个0负数补两个1 >>> 无符号右移 移动2位后无论正负均补两个0 都是转为补码后进行移动 移动后补完再转回原码,即为结果 正数补码就是原码 负数的补码是取反后+1 负数的补码需要-1然后再取反得到结果
发表于 2026-01-21 14:14:37 回复(0)
两位。。
发表于 2026-01-06 15:31:14 回复(0)