左右移位如何与负数和正数一起工作

时间:2017-06-29 14:28:44

标签: java bit-manipulation

右移和左移运算符根据我们在操作中指定的位数分别左右移动所有位。

示例:

int x = 1我们做x = x >> 1,它将所有位向右移动一个位置,并将左边的一个额外位置为0.

但如果负数表示x = -1。其二进制等效值(整数 - 32位)为11111111111111111111111111111111(32位)

如果我们向右移动一位x = x >> 1在左侧没有添加零,在操作之后它仍然是11111111111111111111111111111111(32位)。

但是如果我们向左移动一位x = x << 1则在右侧添加零,它变为11111111111111111111111111111110(32位)。

正数不一样。

即。当我们右移正数时,在左侧添加零,而在负数的情况下,添加1则添加。

0 个答案:

没有答案