Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript リファレンスガイド > ActionScript 言語エレメント > 演算子 > << ビット単位の左シフト演算子 | |||
expression1 << expression2
expression1 と expression2 を 32 ビット整数に変換し、expression2 の変換により生成された整数で指定される桁数だけ expression1 内のすべてのビットを左にシフトします。この演算の結果として空白になったビット位置には 0 が詰められ、左端からあふれたビットは破棄されます。値を 1 桁左にシフトすることは、2 を掛けることと同じ意味になります。
浮動小数点数は、小数点以下が切り捨てられて整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進値に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進値に変換されます。最小値よりも小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。
戻り値は符号付きの 2 の補数として解釈されるため、戻り値は -2147483648 ~ 2147483647 の整数になります。
使用できるバージョン : ActionScript 1.0、Flash Lite 2.0
expression1 : Number - 左にシフトされる数値または式。
expression2 : Number - 0 ~ 31 の整数に変換される数値または式。
Number - ビット演算の結果。
次の例では、整数 1 を左に 10 ビットシフトします。x = 1 << 10。この演算の結果は x = 1024 です。10 進の 1 は 2 進の 1 です。10 左にシフトした 2 進の 1 は 10000000000 になります。それを 10 進に戻すと 1024 になります。次の例では、整数 7 を左に 8 ビットシフトします。x = 7 << 8。この演算の結果は x = 1792 です。10 進の 7 は 2 進の 111 です。8 ビット左にシフトした 2 進の 111 は 11100000000 になります。それを 10 進に戻すと 1792 になります。次の例の出力結果を見ると、ビットが 2 つ分、左にシフトされていることがわかります。
// 2 進数の 2 == 0010 // 2 進数の 8 == 1000 trace(2 << 2); // 8 を出力する
>>= ビット単位の右シフト後代入演算子, >> ビット単位の右シフト演算子, <<= ビット単位の左シフト後代入演算子, >>> ビット単位の符号なし右シフト演算子, >>>= ビット単位の符号なし右シフト後代入演算子