我理解Java中的无符号右移运算符">>>",但为什么我们需要它,为什么我们不需要相应的无符号左移运算符?
关于负数的右移操作我很困惑,这里是代码.
int n = -15;
System.out.println(Integer.toBinaryString(n));
int mask = n >> 31;
System.out.println(Integer.toBinaryString(mask));
Run Code Online (Sandbox Code Playgroud)
结果是:
11111111111111111111111111110001
11111111111111111111111111111111
Run Code Online (Sandbox Code Playgroud)
为什么要将负数移31而不是1(符号位)?
java bit-manipulation bit-shift bitwise-operators negative-number
我有一个32-bit数字而不使用for循环,我想将m位设置为 n位.
例如:
m位可以是2nd或5th或9th或10th.
n位可以是 22nd或27或11th位.
我假设(m <n).
请帮帮我.谢谢