Java 这个的输出是20,但如何呢?
输出是20,但我不明白背后的逻辑。请任何人解释Java 这个的输出是20,但如何呢?,java,Java,输出是20,但我不明白背后的逻辑。请任何人解释 public static void main(String[] args) { System.out.println(5<<2); } publicstaticvoidmain(字符串[]args) { System.out.println(5如果您阅读了以下内容: 一元逐位补码运算符“~”反转位模式;它可以应用于任何整数类型,使每个“0”为“1”,每个“1”为“0”。例如,一个字节包含8位;将
public static void main(String[] args)
{
System.out.println(5<<2);
}
publicstaticvoidmain(字符串[]args)
{
System.out.println(5如果您阅读了以下内容:
一元逐位补码运算符“~”反转位模式;它可以应用于任何整数类型,使每个“0”为“1”,每个“1”为“0”。例如,一个字节包含8位;将此运算符应用于位模式为“00000000”的值会将其模式更改为“11111111”
有符号左移位运算符“”将位模式向右移位。位模式由左手操作数给出,并且由右手操作数给出要移位的位置数。无符号右移位运算符“>>>”将零移位到最左边的位置,而“>>”之后的最左边位置取决于符号扩展
按位&运算符执行按位AND操作
按位^运算符执行按位异或运算
按位|运算符执行按位包含或运算
以下程序BitDemo使用按位AND运算符将数字“2”打印到标准输出
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}
x如果没有溢出,每个左移位就像乘以2。所以左移位乘以2就像*2*2或*4