什么是&燃气轮机&燃气轮机&引用;Java中的符号是什么意思?
我在我正在查看的一些代码中看到一行代码,上面写着(12>>1)-1)。我把这个值打印出来,结果是5。如果我把12改为5,结果是1什么是&燃气轮机&燃气轮机&引用;Java中的符号是什么意思?,java,Java,我在我正在查看的一些代码中看到一行代码,上面写着(12>>1)-1)。我把这个值打印出来,结果是5。如果我把12改为5,结果是1 “>>”符号到底在做什么?它是位移位运算符。请参阅。执行算术右移 例如: 12 >> 1 = 6 -12 >> 1 = -6 二进制右移运算符。左操作数的值按右操作数指定的位数向右移动。例如,一个>>2将给出15,这是二进制的1111 更多信息:12是二进制的1100。一位右移(>>是按位右移运算符)产生 1100 -> 0110
“>>”符号到底在做什么?它是位移位运算符。请参阅。
执行算术右移
例如:
12 >> 1 = 6
-12 >> 1 = -6
二进制右移运算符。左操作数的值按右操作数指定的位数向右移动。例如,一个>>2将给出15,这是二进制的1111
更多信息:12是二进制的
1100
。一位右移(>>是按位右移运算符)产生
1100 -> 0110
结果是6
所以我们有,
6 - 1 = 5
看
Java编程语言还提供了执行
整数类型上的按位和位移位操作。签名的人走了
移位运算符
将位模式右移。钻头
模式由左侧操作数和位置数给出
按右操作数移位。无符号右移运算符
>
将零移到最左边的位置,而最左边的位置
>
之后的位置取决于符号扩展
>
将二进制12(1100)
向右移动1次。12>>1==6(110)
6-1==5
>
是有符号右移运算符。它会向右移动一个位模式。位模式由左侧操作数给出,位置数由右侧操作数移位
当您右移两位时,您会删除两个最低有效位
比如说,x=00111011
因此,当您这样做时,x>>2
,它会导致x=00001110
这本质上与将一个值除以4或2两次,同时删除小数部分相同
因此,下面的代码将导致4
:
byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);
解释您的示例:
- 12的二进制表示为:1100
- 12>>1相当于0110,十进制为6
- 所以(12>>1)-1)相当于6-1,也就是5
byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);