什么是&燃气轮机&燃气轮机&引用;Java中的符号是什么意思?

什么是&燃气轮机&燃气轮机&引用;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)-1)。我把这个值打印出来,结果是5。如果我把12改为5,结果是1


“>>”符号到底在做什么?

它是位移位运算符。请参阅。

执行算术右移

例如:

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

是的,当我用二进制写12时,我看到了这一点。谢谢你的回复!著名网络搜索引擎“java>>运营商”的第二个链接:@fge不,这是对的shift@pathfinderelite嗯,是的,也许你的意思是结果是25?100 / 4 != 4;)
byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);