& 按位 AND 运算符
expression1 & expression2
将 expression1 和 expression2 转换为 32 位无符号整数,并对整数参数的每一位执行布尔 AND 运算。浮点数通过舍去小数点后面的所有位来转换为整数。结果是一个新的 32 位整数。
正整数转换为无符号的十六进制值,其最大值为 4294967295 或 0xFFFFFFFF;转换大于最大值的数时,会舍去最高有效位,使该值仍保持为 32 位。负数通过 2 的补码标记转换为无符号的十六进制值,其最小值为 -2147483648 或 0x800000000;小于最小值的数转换为精度更高的 2 的补码,同时也会舍去最高有效位。
由于返回值解释为带符号的 2 的补码数,因此,返回值将是 -2147483648 到 2147483647 范围中的一个整数。
可用性:Flash Player 5;ActionScript 1.0
操作数
expression1 : Number - 一个数字。
expression2 : Number - 一个数字。
返回 Number - 按位运算的结果。
示例
下面的示例比较数字的位表示形式,仅当相同位置上的位都是 1 时才返回 1。在此 ActionScript 中,将 13(二进制的 1101)和 11(二进制的 1011)相加,仅在两个数字都具有 1 的位置中返回 1。
var insert:Number = 13;
var update:Number = 11;
trace(insert & update); // output : 9 (or 1001 binary)
将数字 13 和 11 相加的结果是 9,因为这两个数字中都只有第一个和最后一个位置具有数字 1。
下面的示例说明返回值转换的行为:
trace(0xFFFFFFFF); // 4294967295
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1
trace(0xFFFFFFFF & -1); // -1
trace(4294967295 & -1); // -1
trace(4294967295 & 4294967295); // -1