& ビット単位の論理積 (AND) 演算子

expression1 & expression2

expression1expression2 を 32 ビット符号なし整数に変換し、整数パラメータをビット単位で論理積 (AND) 演算します。浮動小数点数は、小数点以下が切り捨てられて整数に変換されます。結果は、新しい 32 ビット整数です。

正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進値に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進値に変換されます。最小値よりも小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。

戻り値は符号付きの 2 の補数として解釈されるため、戻り値は -2147483648 ~ 2147483647 の整数になります。

使用できるバージョン : ActionScript 1.0、Flash Lite 2.0 - Flash 4 では、AND (&) 演算子は、ストリングを連結するために使用されていました。Flash 5 以降では、AND (&) 演算子はビット単位の論理積 (AND) 演算子であり、ストリングを連結するには、加算 (+) 演算子を使用する必要があります。AND (&) 演算子を使用する Flash 4 ファイルを Flash 5 オーサリング環境に読み込むと、加算 (+) 演算子を使用するように自動的に更新されます。

メモ : この演算子の動作は、Flash Lite ではバージョンによって異なります。たとえば、Flash Lite 2.0 は、AND (&) 演算子をビット単位の論理積 (AND) としてサポートしています。Flash Lite 2.0 でストリングを連結するには、加算 (+) 演算子を使用する必要があります。ただし、Flash Lite 1.x では、AND (&) 演算子を使用して、ストリングを連結することができます。

オペランド

expression1 : Number - 数値。

expression2 : Number - 数値。

戻り値

Number - ビット演算の結果。

次の例では、数値のビット表現を比較し、同じ位置のビットが共に 1 であった場合にのみ 1 を返します。次の ActionScript コードでは、13 (2 進数 1101) と 11 (2 進数 1011) を加算し、両方とも 1 の桁について 1 を返します。

var insert: Number = 13; 
var update: Number = 11; 
trace(insert & update); // 9 (または 2 進数 1001) を出力する

2 つの数値のうち、共に 1 が立っているのは先頭と末尾の桁だけであるため、13 と 11 の演算結果は 9 になります。

次の例は、戻り値の変換の動作を示しています。

trace(0xFFFFFFFF); // 4294967295 
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1 
trace(0xFFFFFFFF & -1); // -1 
trace(4294967295 & -1); // -1 
trace(4294967295 & 4294967295); // -1 

関連項目

&= ビット単位の論理積 (AND) 代入演算子, ^ ビット単位の排他的論理和 (XOR) 演算子, ^= ビット単位の排他的論理和 (XOR) 代入演算子, | ビット単位の論理和 (OR) 演算子, |= ビット単位の排他的論理和 (OR) 代入演算子, ~ ビット単位の否定 (NOT) 演算子