>>> ビット単位の符号なし右シフト演算子

expression1 >>> expression2

左側のビットには常に 0 が詰められるために元の expression の符号が保持されないという点を除いて、ビット単位の右シフト (>>) 演算子と同じです。

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

使用できるバージョン : ActionScript 1.0、Flash Lite 2.0

オペランド

expression1 : Number - 右にシフトされる数値または式。

expression2 : Number - 0 ~ 31 の整数に変換される数値または式。

戻り値

Number - ビット演算の結果。

次の例では、-1 を 32 ビット整数に変換し、右側に 1 ビットシフトします。

var x: Number = -1 >>> 1; 
trace(x); // 2147483647 を出力する

これは、10 進数の -1 が 2 進数の 11111111111111111111111111111111 (1 が 32 個) であり、右に符号なしで 1 ビットシフトする場合は最下位 (右端) ビットが切り捨てられ、最上位 (左端) ビットに 0 が詰められるためです。その結果は 2 進数の 01111111111111111111111111111111 となります。これは、32 ビット整数の 2147483647 を表します。

関連項目

>>= ビット単位の右シフト後代入演算子