Flash Player 5。
expression1
>>expression2
expression1
要向右移位的数字或表达式。
expression2
将转换为 0 到 31 之间整数的数字或表达式。
无。
运算符(按位);将 expression1
和 expression2
转换为 32 位整数,然后将 expression1
中的所有位向右移一定位数,该位数由 expression2
转换而来的整数指定。移到右侧的位被去掉。若要保留原 expression
的符号,则如果 expression1
的最高有效位(最左端的位)为 0,那么左侧的位都填补 0;如果最高有效位为 1,那么左侧的位都填补 1。将一个值右移一位等效于将它除以 2 并去掉余数。
下面的示例将 65535 转换为 32 位整数,然后右移 8 位。
x = 65535 >> 8
上述运算的结果如下所示:
x = 255
这是因为十进制的 65535 等于二进制的 1111111111111111(16 个 1),二进制的
1111111111111111 向右移 8 位是二进制的 11111111,而二进制的 11111111 是十进制的
255。因为这个整数是 32 位的,最高有效位为 0,所以用 0 来填补位。
下面的示例将 -1 转换为 32 位整数,然后右移 1 位。
x = -1 >> 1
上述运算的结果如下所示:
x = -1
这是因为十进制的 -1 等于二进制的 11111111111111111111111111111111(32 个 1),向右移一位使得最低有效位(最右侧的位)被去掉而最高有效位被填补上 1。结果为二进制的
11111111111111111111111111111111(32 个 1),表示 32 位整数 -1。