JavaScript では、「~」演算子を使用してビットごとの否定を実装できます。構文は「~ オペランド」です。「~」演算子は、指定されたオペランドをバイナリ整数形式に変換し、バイナリオペランドはビットごとに反転されます。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript では、「~」演算子を使用してビットごとの否定を実装できます。たとえば、~1 = -2、~-3=2、~true=-2、~false=-1
「~」演算子は、指定された値のバイナリ表現を表示し、バイナリを選択できます。オペランド ビットごとに否定演算を実行します。
ステップ 1: オペランドを 32 ビット 2 進整数に変換します。
ステップ 2: 反転演算を少しずつ実行します。
ステップ 3: 2 進数の 1 の補数を 10 進数の浮動小数点数に変換します。
12 に対してビット単位の NOT 演算を実行すると、戻り値は -13 になります。
console.log( ~ 12 ); //返回值-13
次の図は、12 に対してビット単位の NOT 演算を実行するプロセスを算術式の形式で解析したものです。
#ビットごとの反転の計算方法
ビットごとの反転演算ルールの手順: 1. 10 進数を元のコードに変換します。 元の 2 進数コードに変換します。最上位ビットは符号ビットです。0 は正の数、1 は負の数です。十进制 ----> 原码 1 ----> 00000001 -1 ----> 10000001
十进制 ----> 原码 ----> 反码 1 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110
十进制 ----> 原码 ----> 反码 ----> 补码 1 ----> 00000001 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110 ----> 11111111
補数を反転した後の符号位置は 1 であり、負の整数であるため、負の整数の計算方法に従って補数が計算されます 元のコードを取得する逆演算 元のコード code を取得する逆演算。まず、逆補数を逆コードに変換します。
式: 逆コード = 補数 - 1 、反転されたコードを元のコードに変換します。符号ビットは変更されず、他のビットは反転されます 十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码
1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000
5. 元のコードをバイナリに変換します
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码 ----> 转成二进制 1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010 ----> -2
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 ----> 转成二进制 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000 ----> 0
否定とその後の否定の役割~~
演算子 ~ はビット単位の否定を意味します。表面、
(反転してから否定する) は意味がありませんが、実際には JS で実行できます。浮動小数点数を整数に変換します。
console.log(~~1.11); //1 console.log(~~-25.11); //-25
以上がJavaScriptでビットごとの否定を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。