我是Bitwise Operator的新手,我在维基百科中找到了以下一行" Bitwise运算符" - (https://en.wikipedia.org/wiki/Bitwise_operation)
如果二进制数被视为一个'补充,然后相同 右移操作导致除以2n并向四舍五入 零。
但不确定它是什么意思。请帮我理解这一点。
答案 0 :(得分:0)
这是关于右移操作。以下答案来自我自己的博客:
>>
是一个右移位运算符,它的运算方式与左移运算符完全相同,但它仅在2个方面有所不同。
如果数字为负数(最高有效位为1),则填充间隙为1,否则为0
- 醇>
它从右移位
7 >> 2
0000 0111 >> 2
0000 01 (See two 1’s from right have been shifted)
00 0000 01 (Added two 0’s, because number is positive)
0000 0001 = 1
所以7 >> 2 = 1
对于负数,它用1而不是0填补空白。
记住7 >> 2 = 1
和-7 >> 2 = -1
。
它只是保留了标志,其他一切都保持不变。如果你仔细观察右移操作符,你会发现它可以写成:
7 >> 2 => (7) / (2^2) => 7/4 => 1
这就是维基百科的含义,您可以将右移运营商视为:
NUMBER(7)/ power(2,NUMBER_OF_TIMES(2))并将其四舍五入