大众计算机学习网

专门提供各种电脑教程

Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按位 XOR 赋值运算符

Admin | 2011-12-30 8:31:22 | 被阅次数 | 3923

  一、?: 条件运算符

  expression1 ? expression2 : expression3

  指示 Flash 计算 expression1,如果 expression1 的值为 true,则返回值 expression2;否则返回值 expression3。

  操作数

  expression1 : Object - 一个计算结果为布尔值的表达式;通常为像 x < 5 这样的比较表达式。

  expression2 : Object - 任意类型的值。

  expression3 : Object - 任意类型的值。

  返回 Object - expression2 或 expression3 的值。

  示例

  下面的语句将变量 x 的值赋予变量 z,因为 expression1 的计算结果是 true:

  var x:Number = 5;
  var y:Number = 10;
  var z = (x < 6) ? x: y;
  trace (z); // returns 5

  下面的示例说明简写的条件语句:

  var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM";
  trace(timecode);

  也可以按普通形式编写该条件语句,如下例所示:

  if (new Date().getHours() < 11) {
   var timecode:String = "AM";
  } else {
   var timecode:String = "PM";
  } trace(timecode);

  二、^ 按位 XOR 运算符

  将 expression1 和 expression2 转换为无符号 32 位整数,然后对于 expression1 或 expression2 中为 1(但不在两者中同时为 1)的相应位的每一位返回 1。浮点数通过舍去小数点后面的所有位来转换为整数。结果是一个新的 32 位整数。

  正整数转换为无符号的十六进制值,其最大值为 4294967295 或 0xFFFFFFFF;转换大于最大值的数时,会舍去最高有效位,因此该值仍保持为 32 位。负数通过 2 的补码标记转换为无符号的十六进制值,其最小值为 -2147483648 或 0x800000000;小于最小值的数转换为精度更高的 2 的补码,同时也会舍去最高有效位。

  由于返回值解释为带符号的 2 的补码数,因此,返回值将是 -2147483648 到 2147483647 范围中的一个整数。

  可用性:Flash Player 5;ActionScript 1.0

  操作数

  expression1 : Number - 一个数字。

  expression2 : Number - 一个数字。

  返回 Number - 按位运算的结果。

  示例

  下面的示例对十进制的 15 和 9 使用按位 XOR 运算符,然后将结果赋予变量 x:

  // 15 decimal = 1111 binary
  // 9 decimal = 1001 binary
  var x:Number = 15 ^ 9;
  trace(x);
  // 1111 ^ 1001 = 0110
  // returns 6 decimal (0110 binary)

  三、^= 按位 XOR 赋值运算符

  expression1 ^= expression2

  对 expression1 赋予 expression1 ^ expression2 的值。例如,下面两个语句是等效的:

  x ^= y;
  x = x ^ y;

  可用性:Flash Player 5;ActionScript 1.0

  操作数

  expression1 : Number - 整数和变量。

  expression2 : Number - 整数和变量。

  返回 Number - 按位运算的结果。

  示例

  下面的示例说明按位 XOR 赋值 (^=) 运算:

  // 15 decimal = 1111 binary
  var x:Number = 15;
  // 9 decimal = 1001 binary
  var y:Number = 9;
  trace(x ^= y); // returns 6 decimal (0110 binary)