ビット演算
ビット演算(bitwise operation)
計算機上でやる操作の一つ
対象データを0,1のビット列で構成されるものとして扱い、論理演算をする演算
論理シフト(logical shift)
符号を考慮せずに行うシフト演算
シフトした結果
はみ出したビットは切り捨てる
空いたビット位置には0を挿入する
操作
左論理シフト
2進数の場合、元の数を$ 2^n
右論理シフト
2進数の場合、元の数を$ 2^{-n}
算術シフト(arithmetic shift)
符号を考慮して行うシフト演算
操作
左算術シフト
0埋めされる
右算術シフト
符号ビットが1なら1埋めされる
例
code:memo
// 1 << N、左ビットシフト
N=4
1 << N
= 1 << 4
= 10000 (2進数)
= 1 * 2^4
= 16
OR演算(論理和)
AND演算(論理積)
NOT演算(否定演算)
排他的論理和(XOR)
C言語 ビット演算
16進数
n進表現
『Bit Twiddling Hacks』
確認用
Q. ビット演算
Q. 論理シフト
Q. 算術シフト
Q. OR演算
Q. AND演算
Q. NOT演算
Q. 排他的論理和
参考
ビット演算とは - 意味をわかりやすく - IT用語辞典 e-Words
C言語 ビット演算【扱うための視点と実践的な使用例を図解】
#C/C++