[TIL/JavaScript]ビット演算子
6938 ワード
[JavaScript]ビット演算子ビット演算子は、与えられた数をバイナリ数に変換し、ビット単位で論理演算を実行する. &(AND論理演算子)
比較のビット数がいずれも1であれば、1を返す. で比較したビットのうち、1つでも1を返します. で比較された2つのビットは、0を返し、1を返します. 被演算子は1つしかなく、ビットの値を反転します. 1の「一元」補完方式は,リズムを反転させることによって負の値を表現する. は、指定された数でビット全体を左に移動する. は何格子を移動し、2の平方を乗じた. ビット数全体を指定された数だけ右に移動します. 右側の位では消えてしまうので、規則性はありません. 32ビット数のすべてのビットを右に移動し、空席はすべて0になります. 正数では、動作は符号右側切替と同じであるが、負数の場合は異なる.→空席を0に埋め、負数のバイナリ表現を正数とする.
ビット演算子がどこで使えるか探しましたが、見つかりませんでした.しかし、重要なのは私が0と1を直接コントロールできることです.😇 今はいらないとしても、一つ一つ知っていれば、いつか原因を意識する日が来るかもしれません.🤔
コメントドキュメント JavaScriptビット演算子by Jamのワークスペース にしんすうと負数表現 Unsigned right shift (>>>) by MDN Web Docs Bitwise XOR (^) by MDN Web Docs
比較
const b1 = 2 & 3;
console.log(b1); //2
//2 0010
//3 0011
// 0010 = 2
|(OR論理演算子)const b2 = 2 | 3;
console.log(b2); //3
//2 0010
//3 0011
// 0011 = 3
^(排他論理演算子)const b3 = 5 ^ 3;
console.log(b3); //6
//5 0101
//3 0011
// 0110 = 6
~(否定論理演算子)const b4 = ~ 4;
console.log(b4); //-4
//0000 0100 4
//1111 1011 -4
<<(左切替演算子)const b5 = 4 << 2;
console.log(b5); //16
//4를 2비트 왼쪽으로 이동한다.
//0000 0100 4
//0000 1000 8(1비트 이동)
//0001 0000 16(2비트 이동)
//4 * 2 * 2
>>(右切り替え演算子)const b6 = 4 >> 2;
console.log(b6); //1
//4를 2비트 오른쪽으로 이동한다.
//0000 0100 4
// 000 0010 2(1비트 이동)
// 00 0001 1(2비트 이동)
>>>>(符号なし右切り替え演算子)const b7 = 5 >>> 2;
const b8 = -5 >>> 2;
console.log(b7); //1
// 00000000000000000000000000000101 5
// 00000000000000000000000000000001 1(2비트 이동)
console.log(b8); //1073741822
// -00000000000000000000000000000101(=11111111111111111111111111111010) -5
// 00111111111111111111111111111110 1073741822(2비트 이동)
P.S.ビット演算子がどこで使えるか探しましたが、見つかりませんでした.しかし、重要なのは私が0と1を直接コントロールできることです.😇 今はいらないとしても、一つ一つ知っていれば、いつか原因を意識する日が来るかもしれません.🤔
コメントドキュメント
Reference
この問題について([TIL/JavaScript]ビット演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@nulbo/TIL-JavaScript-비트-연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol