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

~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 の整数になります。

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

オペランド

expression : Number - 数値。

戻り値

Number - ビット演算の結果。

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

var ReadOnlyFlag: Number = 0x0001; // 読み取り専用フラグとしてビットに 0 を定義する 
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); 
// 0 1 0 を出力する 

関連項目

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