タイトル通りビット演算の紹介をしていきたいなと思います。
ビット演算とは二進数の計算のことですね。
具体的にソースコードで簡単に説明していく
#include <iostream>
using namespace std;
int main(void) {
int a = 6;
int b = 12;
int c = ~4 + 1; // 2の補数表現
int d = (3 | 4) << 2; //ビット演算 和
int e = 5 ^ 3; // ビット演算 排他的論理和
cout << (a & b) << endl; // ビット演算 積
cout << c << endl;
cout << d << endl;
cout << e << endl;
}
/* 実行結果
4
-4
28
6
*/
補数表現から解説していきます
~で補数表現を表現しています。
まず4を二進数になおすと0100で先頭の0は正を表し、1なら負を表します。
処理の流れとしては
1.全ての反転させる 2.最後に1をたす
といった感じです。
まず1.で反転させて1011になり、2.で1を足して1100となり−4となりました。
論理積
&で論理積を表します。
計算方法
まず数字を2進数に変換して位が同じどうしで二進数の掛け算を実行します
12→1100
6 →0110
12 & 6 = 0100 → 4
となります。


簡単なまとめ
a | b | 論理和( | ) | 論理積( & ) | 排他的論理和( ^ ) |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 |
もしよかったら参考してください。
今回は以上になります。
ではまた。
コメント