Java 关于轮班操作员 公共类移位{ 公共静态void shift1(){ int i=0; 而(-1

Java 关于轮班操作员 公共类移位{ 公共静态void shift1(){ int i=0; 而(-1,java,Java,,因为这是在中指定的:“如果左侧操作数的提升类型为int,则仅将右侧操作数的五个最低阶位用作移位距离。” 很多硬件也是这样工作的。最低的5位与此无关 -1表示为32“1”位:11111111111111 每个 32以上的移位都不是java所做的,因为它是一个相当无效的操作,它只是它被指定如何工作。< /p > 32’1’位: 0xFFFFFFF< /COD>。 java只考虑右操作数的低阶5位,而移位< /C> >。我不能理解这意味着什么。救命啊。 public class Shift{

,因为这是在中指定的:“如果左侧操作数的提升类型为int,则仅将右侧操作数的五个最低阶位用作移位距离。”

很多硬件也是这样工作的。

最低的5位与此无关

-1表示为32“1”位:
11111111111111


每个<代码> 32以上的移位都不是java所做的,因为它是一个相当无效的操作,它只是它被指定如何工作。< /p > 32’1’位:<代码> 0xFFFFFFF< /COD>。<代码> java只考虑右操作数的低阶5位,而移位< /C> >。我不能理解这意味着什么。救命啊。
public class Shift{

    public static void shift1(){
        int i = 0;
        while(-1 << i != 0){
            i++
        }
    }

    public void shift2(){
        for(int i=-1;i!=0;i<<=1){
            System.out.println(i);
        }
    }
}