~expression
1 の補数演算子またはビット単位の補数演算子とも呼ばれます。expression を 32 ビット符号付き整数に変更し、ビット単位で 1 の補数を適用します。つまり、0 を保持するすべてのビットは 1 に設定され、1 を保持するすべてのビットは 0 に設定されます。結果は、符号付き 32 ビット整数です。
たとえば、0x7777 という 16 進値は、2 進数では 0111011101110111 と表現されます。
この 16 進値をビット単位で符号反転 (~0x7777) すると、2 進数では 1000100010001000 になります。
これは、16 進数の 0x8888 に相当します。したがって、~0x7777 は 0x8888 となります。
ビット単位演算子は、フラグビットを表現する場合に最もよく使用されます (ブール値をそれぞれ 1 ビットにパックすることができます)。
浮動小数点数は、小数点以下が切り捨てられて整数に変換されます。正の整数は 4294967295 (0xFFFFFFFF) を最大値とする符号なし 16 進値に変換されます。最大値より大きい値は、32 ビットを超えないように、変換時に最上位の桁が切り捨てられます。負の値は、2 の補数表現を使用して、-2147483648 (0x800000000) を最小値とする符号なし 16 進値に変換されます。最小値よりも小さい値は、さらに高い精度で 2 の補数に変換された上で、最上位の桁が切り捨てられます。
戻り値は符号付きの 2 の補数として解釈されるため、戻り値は -2147483648 から 2147483647 の整数になります。
expression : Number - 数値。
Number - ビット演算の結果。
次に、フラグビットでビット単位の否定 (NOT) (-) 演算子を使用する例を示します。
var ReadOnlyFlag:Number = 0x0001; // ビット 0 を読み取り専用フラグとして定義する var flags:Number = 0; trace(flags); /* flags 変数の読み取り専用フラグを設定するために、 次のコードでビット単位の論理和 (OR) を指定します。 */ flags |= ReadOnlyFlag; trace(flags); /* flags 変数の読み取り専用フラグをクリアするために、 最初に、ReadOnlyFlag に対してビット単位の否定 (NOT) を使用して、マスクを作成します。 このマスクでは、読み取り専用フラグを除き、すべてのビットが 1 になります。 次に、マスクとビット単位の論理積 (AND) を使用して、読み取り専用フラグをクリアします。 次のコードは、マスクを作成してビット単位の論理積 (AND) を実行します。 */ flags &= ~ReadOnlyFlag; trace(flags); // 出力 : 0 1 0
& ビット単位の論理積 (AND) 演算子, &= ビット単位の論理積 (AND) 代入演算子, ^ ビット単位の排他的論理和 (XOR) 演算子, ^= ビット単位の排他的論理和 (XOR) 代入演算子, | ビット単位の論理和 (OR) 演算子, |= ビット単位の論理和 (OR) 代入演算子
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート