我用 Java 编写了一个程序来使用带有零填充 (>>>) 运算符的右移。对于以下程序,一切都很好。
class First
{
public static void main(String[] args)
{
int b = -1;
int c = b>>>2;
System.out.println(b);
System.out.println(c);
}
}
输出是:
-1
1073741823
在上面的程序中一切都很好。但是如果我为字节编写相同的程序:
class First
{
public static void main(String[] args)
{
byte b = -1;
byte c = (byte)(b>>>2);
System.out.println(b);
System.out.println(c);
}
}
输出是:
-1
-1
它看起来像“>>”运算符而不是“>>>”的工作。我的预期输出是:
-1
63
请解释其背后的概念。