C/C++

ビット演算子

更新日:

ビット演算とは

ビット演算子を使えば2進数のビット単位での演算ができます。

簡単に言えば論理演算子を1ビット単位で考えたものです。

論理演算子

ビット演算子一覧

名称 構文 意味 優先順位 結合規則
左シフト演算子 a << b 左にビットシフト 6
右シフト演算子 a >> b 左にビットシフト 6
左シフト代入演算子 a <<= b 左にビットシフトして代入 15
右シフト代入演算子 a >>= b 右にビットシフトして代入 15
ビット積演算子 a & b ビット単位のaかつb 9
ビット和演算子 a | b ビット単位のaもしくはb 10
ビット否定演算子 ~a ビット単位のaでない 2
ビット排他的論理和演算子 a ^ b 同じなら0違うなら1 11
ビット積代入演算子 a &= b ビット積を代入 15
ビット和代入演算子 a |= b ビット和を代入 15
ビット排他的論理和代入演算子 a ^= b ビット排他的論理和を代入 15

ビットシフト

ビットシフトとはデータのビット列を左右にずらすことです。

01100010


という8桁の2進数を左に1ビットシフトすると

11000100


となります。
左に1つ分ずらし、足りない部分に0をいれ、あまった部分は切り捨てます。

左に1つずらすということはもと数に2を掛けた値になります。
これは10進数で考えるとわかりやすいでしょう。

0123


という10進数の数を左に1つずらすと

1230


でもとの数の10倍になります。

右シフトも同様に1つずらすごとに1/2倍されていきます。

これを使うことで掛け算、割り算を表現することができます。
詳しくはこちらでまとめています。

2進数の乗除算



-C/C++

Copyright© C言語/C++入門講座  ツナサーモン , 2019 All Rights Reserved Powered by AFFINGER5.