6.ビット演算
2進数に特有の演算としてビット演算があります.論理演算とビットシフトに分けられます.
bitごとに行う論理演算として,論理和OR, 論理積AND, 論理否定NOT, 排他的論理和XORがあります.
演算 |
記号 |
意味 |
OR |
| |
一方,または両方が1なら1, 両方0なら0 |
AND |
& |
両方1なら1, 一方,または両方が0なら0 |
NOT |
~ |
0なら1,1なら0 |
XOR |
^ |
一方が1なら1,両方が1,または0なら0 |
演算の例を下に示します.
OR | 一方,または両方が1なら1, 両方0なら0
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
AND & 両方1なら1, 一方,または両方が0なら0
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
NOT ~ 0なら1, 1なら0
~0 = 1
~1 = 0
XOR ^ 一方が1なら1, 両方が1,または0なら0
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
ビットシフトはビットが移動するものです.左辺のビット列を右辺の数の分だけ左右に移動させます.
新たに表れる部分は0になります.
演算 |
記号 |
例 |
左ビットシフト |
<< |
0b11010111 << 3 = 0b10111000 |
右ビットシフト |
>> |
0b10011100 >> 2 = 0b00100111 |
これらはbitごとの操作をするときによく使います.
PCでのプログラミングではそこまで使う機会は会いませんが,マイコンでは頻繁に使います.
最終更新:2017年07月18日 17:47