ビット演算

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