~ ビット単位の否定 (NOT) 演算子

~expression

1 の補数演算子またはビット単位の補数演算子とも呼ばれます。expression を 32 ビット符号付き整数に変更し、ビット単位で 1 の補数を適用します。つまり、0 を保持するすべてのビットは 1 に設定され、1 を保持するすべてのビットは 0 に設定されます。結果は、符号付き 32 ビット整数です。

たとえば、0x7777 という 16 進数値は、2 進数では 0111011101110111 と表現されます。

この 16 進数値をビット単位で符号反転 (~0x7777) すると、1000100010001000 という 2 進数になります。

16 進数では、これは 0x8888 になります。したがって ~0x7777 は 0x8888 です。

ビット単位演算子は、フラグビットを表現する場合に最もよく使用されます (ブール値をそれぞれ 1 ビットにパックすることができます)。

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

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

対応バージョン : ActionScript 1.0、Flash Player 5

オペランド

expression : Number - 数値。

戻り値

Number - ビット演算の結果。

次に、フラグビットでビット単位の否定 (NOT) (-) 演算子を使用する例を示します。

var ReadOnlyFlag:Number = 0x0001; // defines bit 0 as the read-only flag 
var flags:Number = 0; 
trace(flags); 
/* To set the read-only flag in the flags variable, 
 the following code uses the bitwise OR: 
*/
flags |= ReadOnlyFlag; 
trace(flags); 
/* To clear the read-only flag in the flags variable, 
 first construct a mask by using bitwise NOT on ReadOnlyFlag. 
 In the mask, every bit is a 1 except for the read-only flag. 
 Then, use bitwise AND with the mask to clear the read-only flag. 
 The following code constructs the mask and performs the bitwise AND: 
*/ 
flags &= ~ReadOnlyFlag; 
trace(flags); 
// output: 0 1 0 

関連項目

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


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001256.html