我正在使用一些javascript for html 5的画布。我正在查看一些现有代码,并且我遇到了以下内容:
element.height >> 1
element.width >> 1
它用作某些算术的一部分。
我也在使用prototype.js,如果这有帮助的话。
答案 0 :(得分:5)
>>
是按位移位运算符。所以>> 1
基本上将左边数字的二进制表示向右移动一个。这等于整数除以2。
因此element.height >> 1
等于Math.floor( element.height / 2)
答案 1 :(得分:3)
这是bitshift运营商。
答案 2 :(得分:3)
这是一个符号传播的右移;这里有完整的解释:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators#.3E.3E_%28Sign-propagating_right_shift%29。
答案 3 :(得分:2)
Shifting(bitshift)运算符。
1 << 1
这会将位模式00000001
向左移动一次(使用0
s填充) - 得到00000010
,即2
。
1 << 2
将其移动两位,因此您获得00000100
,即4
。
在实现二进制协议时非常有用,其中只有2位可能意味着什么。使用移位你可以去掉剩下的部分。
答案 4 :(得分:0)
这是符号传播的右移位运算符,它将第一个操作数的二进制表示的数字向右移动第二个操作数指定的位数,从而向右移除任何移位。最左边的位的副本从左侧添加,从而保留数字的符号。
因此,在您的情况下,所有内容都会向右移动一个位置。