这是我的第一个问题
这是我的代码:
public class Bits{
public static void main(String args[]){
int i = 2 , j = 4;
int allOnes = ~0;
int left = allOnes << (j+1);
System.out.println("Binary Equivalent at this stage: " +Integer.toBinaryString(left));
}
}
以下是我得到的输出:
Binary Equivalent at this stage: 11111111111111111111111111100000
如何将其限制为仅从右侧开始的 8 位。我的意思是11100000
。
请解释。
这是我的第二个问题:
另外,我还有一个与上述问题完全不同的问题:
public static void main(String args[]){
int i = 2 , j = 4;
int allOnes = ~0; // will equal sequence of all 1s
int left = allOnes << (j+1);
System.out.println("Binary Equivalent at this stage: " +Integer.toBinaryString(left));
}
}
由于我不明白以下行:
int allOnes = ~0; // will equal sequence of all 1s
当我试图输出“allOnes”的值时,我得到了“-1”作为我的输出。
我很难理解下一行,如下所示:
int left = allOnes << (j+1);