按位向右移位运算符
将 expression1 和 expression2 转换为 32 位整数,并将 expression1 中的所有位向右移动由 expression2 转换所得到的整数指定的位数。移到右端以外的位将被舍去。若要保留原始 expression 的符号,则如果 expression1 的最高有效位(最左端的位)为 0,那么左侧的位都填补 0;如果最高有效位为 1,那么左侧的位都填补 1。将一个值右移一位等效于将它除以 2 并舍去余数。
浮点数通过舍去小数点后面的所有位来转换为整数。正整数转换为无符号的十六进制值,其最大值为 4294967295 或 0xFFFFFFFF;转换大于最大值的数时,会舍去最高有效位,因此该值仍保持为 32 位。负数通过 2 的补码标记转换为无符号的十六进制值,其最小值为 -2147483648 或 0x800000000;小于最小值的数转换为精度更高的 2 的补码,同时也会舍去最高有效位。
由于返回值解释为带符号的 2 的补码数,因此,返回值将是 -2147483648 到 2147483647 范围中的一个整数。
操作数
expression1 : Number - 要向右移位的数字或表达式。
expression2 : Number - 转换为从 0 到 31 的整数的数字或表达式。
返回 Number - 按位运算的结果。
示例
下面的示例将 65535 转换为 32 位整数,然后右移 8 位:
var x:Number = 65535 >> 8;
trace(x); // outputs 255
下面的示例显示上一示例的结果:
var x:Number = 255;
四、>>= 按位向右移位并赋值运算符
expression1 >>= expression2
此运算符执行按位向右移位运算,并将内容作为结果存储在 expression1 中。
下面的两个语句是等效的:
A >>= B;
A = (A >> B);
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 要向右移位的数字或表达式。
expression2 : Number - 转换为从 0 到 31 的整数的数字或表达式。
返回 Number - 按位运算的结果。
五、>>> 按位无符号向右移位运算符
expression1 >>> expression2
除了不保留原始 expression 的符号外,此运算符与按位向右移位运算符 (>>) 相同,这是因为左侧的位始终用 0 填充。
浮点数通过舍去小数点后面的所有位来转换为整数。正整数转换为无符号的十六进制值,其最大值为 4294967295 或 0xFFFFFFFF;转换大于最大值的数时,会舍去最高有效位,因此该值仍保持为 32 位。负数通过 2 的补码标记转换为无符号的十六进制值,其最小值为 -2147483648 或 0x800000000;小于最小值的数转换为精度更高的 2 的补码,同时也会舍去最高有效位。
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 要向右移位的数字或表达式。
expression2 : Number - 转换为从 0 到 31 的整数的数字或表达式。
返回 Number - 按位运算的结果。
示例
下面的示例将 -1 转换为 32 位整数并向右移 1 位:
var x:Number = -1 >>> 1;
trace(x); // output: 2147483647
六、>>>= 按位无符号向右移位并赋值运算符
expression1 >>>= expression2
执行无符号按位向右移位运算,并将内容作为结果存储在 expression1 中。下面的两个语句是等效的:
A >>>= B;
A = (A >>> B);
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 要向右移位的数字或表达式。
expression2 : Number - 转换为从 0 到 31 的整数的数字或表达式。
返回
Number - 按位运算的结果。