大众计算机学习网

专门提供各种电脑教程

动画制作之&按位AND 运算符

Admin | 2011-12-18 8:38:46 | 被阅次数 | 3889

  & 按位 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