|
ビット演算(ビットえんざん)とは、ひとつあるいはふたつのビットパターンまたは二進数を個々のビットの列として操作することである。 CPU設計の観点からは、ビット演算は簡単な論理回路で実現できるが、四則演算、特に乗除算は複雑な論理回路を必要とするため、多くのコンピュータでは、ビット演算は加減算より若干速く、乗除算よりずっと高速である。 ビット演算はビットマスクと呼ばれる手法を用いたフラグ管理などに用いられるほか、その並列性からオートマトン実装に用いられる場合もある(→Bitapアルゴリズム)。 == ビット演算子 == === NOT === ビット単位NOTあるいは補数とは論理否定を各ビットに対して行う単項演算。0 は 1 になり、1 は 0 になる。 NOT 0111 = 1000 C言語やC++言語では、NOT演算子は " ~ " (チルダ)である。x = ~y; この例では、''x'' に "NOT ''y''" の結果を格納する。これは、Cおよび C++の論理「否定」演算子 " ! " (エクスクラメーションマーク)とは異なる。こちらは与えられた数値全体をひとつのブーリアンとして扱う。x = !y; この例では、''x'' に ''y''が "false" であれば "true" を表すブーリアン値を格納し、''y'' が "true" であれば "false" を格納する。CやC++では、数値はゼロでないとき "true" を示すとされる。論理「否定」はビットレベルの演算ではないので、一般的にはビット演算とは考えられない。 ビット単位NOTは二進数値の1の補数を作るのに使える。そして2の補数を作るときの途中の段階にも使われる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ビット演算」の詳細全文を読む スポンサード リンク
|