我看到一些我正在看的代码中的一行,它说(12 >> 1) - 1).我将该值打印出来并以5的形式出现.如果我将12更改为5,则表示为1.什么是">>"符号?谢谢
Kar*_*tic 22
>>签署了右移运营商.它将位模式向右移动.位模式由左侧操作数给出,位置数由右侧操作数移位.
向右移2位时,丢弃2位.
可以说, x = 00111011
所以当你这样做时x >> 2,就会产生结果x = 00001110
这与将值除以4或2两次基本相同.
因此,下面的代码将导致 4
byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);
Run Code Online (Sandbox Code Playgroud)
解释你的例子:
CSC*_*SCH 18
12是1100二进制的.右移((>>是按位右移运算符)一位产生
1100 -> 0110
Run Code Online (Sandbox Code Playgroud)
这是6.
因此,我们有,
6 - 1 = 5
Run Code Online (Sandbox Code Playgroud)