JSビット操作子

1953 ワード

ビット毎の操作子(Bitwise operators)は、その操作数(operands)を、10進数、16進数、または8進数の値ではなく、32ビットのビットシーケンスとして扱う.例えば、10進数9は、2進数で表すと1001となります.ビットオペレータによる数字のバイナリ形式ですが、戻り値は依然として標準的なJavaScript値です.
以下の表はJavaScriptのビット別オペレータをまとめています.
演算子
使い方
説明

位別と(AND)a & b各ビットに対して、2つの操作数だけ対応するビットビットが1である場合、結果は1であり、そうでなければ0である.0b1110 & 0b1101 === 0b1100ビットまたは(OR)でa | b各ビットに対して、2つの動作数に対応するビットビットが少なくとも1つある場合、結果は1であり、そうでなければ0である.0b1110 | 0b1101 === 0b1111ビット別異和(XOR)a ^ b各ビットに対して、2つの動作数が対応するビットビットがあり、1つしかない場合、結果は1であり、そうでなければ0である.0b1110 ^ 0b1101 === 0b0011位別非(NOT)~ a反転操作数のビット、すなわち0は1になり、1は0になる.~0b1110 === -0b1111左シフト(Left shift)a << baのバイナリ形式を左にb(<32)ビットビットシフトし、右に0で塗りつぶします.0b00001110 << 2 === 0b00111000符号付きで右に移動a >> baのバイナリは、シフトされたビットを右にb(<32)ビットを表し、破棄する.0b00001110 >>2 === 0b00000011符号なしで右に移動a >>> baのバイナリは、シフトされたビットを右にb(<32)ビット、廃棄し、0を使用して左側に塗りつぶします.-1 >>> 1 === 2147483647, -1 >>>31 ===1~順位別
位別の計算結果がよく分かりませんので、資料を調べて、計算手順をまとめました.
計算ステップ:
  • 入力~7
  • をバイナリに変換すると、0 b 0000111です.
  • は補数を取ります.つまり0 b 0000111です.
  • もう一度押すと、0 b 11111000.
  • です.
  • は補数を元のコードに変えます.0 b 11111000は負の数ですから、元のコードに変換する過程はもう一回の補数を求めます.0 b 11111000(元)=0 b 1000111(反対)=0 b 100000(補足)
  • 戻り値-8
  • もとのコードを追加してください.逆コードと補数の知識点は次の通りです.
  • 元のコードは、記号のビットに真の値を付加する絶対値であり、1番目のビットでシンボルを表し、残りのビットは値を表します.例えば、8ビットのバイナリ(1番目が符号ビット)であれば、+1=0 b 0000 0001(元)-1=0 b 1000 0001(元)
  • (元)
  • 逆コードの表示方法は、正の数の逆コードが自身であり、負の数の逆コードがその元のコードに基づいて、記号のビットが不変であり、残りの各ビットが逆になります.+1=00001(元)=00001(反)-1=100000 1(元)=11110(反)
  • 補数の表示方法は、正数の補数はその自身であり、負の数の補数はその元のコードに基づいて、記号のビットは不変であり、残りの部分は逆になり、最後の+1.(つまり、逆コードに基づいて+1)+1=00001(元)=00001(補足)-1=100000(元)=11111(反1115611)
    あなたに助けがあれば、いいね-