什么是>> operator / operand / modifier吗?

时间:2010-01-16 12:17:18

标签: javascript md5

我正在审核一些javascript代码,程序员使用>>在一些地方。我试图在谷歌搜索,但无法找到这个操作数/运算符的作用。我在这里。代码示例如下:

var triplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);

2 个答案:

答案 0 :(得分:2)

>>是右移运算符,<<是左移运算符。它们按整数运算如下:

00001000b >> 1 = 00000100b
00001000b << 1 = 00010000b

换句话说:

num >> 1 = num / 2
num >> 2 = num / 4
.
.
.
num >> n = num / 2^n

同样地:

num << 1 = num * 2
num << 2 = num * 4
.
.
.
num << n = num * 2^n

答案 1 :(得分:1)

&lt;&lt;和&gt;&gt;是常见的按位运算符。

<< is left shift and
>> is right shift.

例如:

i << 2

将i的值向左移动2位。

你可以在这里找到更多信息(得到按位运算符部分): http://docs.rinet.ru/ProPauk/ch23.htm#BinaryOperators