ブール演算のビット毎の演算のテクニック:ぱらぱらめくる『クヌース本4.1』
- ブール演算・ビット毎演算を用いて、色々な効率化・高速化アルゴリズムがある。その例が以下に挙げられている
- 複数の情報、を詰め込む・へばらす
- 2012年11月10日を20121110と表すことを考える
- 年が2
- 年を構成する4つの数字を6桁左へシフトして
- 月を構成する2つの数字と併せ
- できた6つの数字列を8桁左へシフトして
- 日を構成する2つの数字と併せて
- 結局8つの桁の数字にしている
- これを2進法で行うには: kビット左へシフトと、: kビット右へシフトとを使えばできる
- 2012年11月10日を20121110と表すことを考える
- ビッグエンディアンとリトルエンディアン・右端/左端のビットの扱い
- 1を加えたり引いたりするときには最下位桁に働きかけて、繰り上がり・繰り下がりがある。そんなときの技
- べき集合の取り扱いに使う
- 全桁の和は要素数を表す(横方向の加算)
- ビットの反転
- はマジックマスクで
- ビットの交換、置換
- もマジックマスクの応用
- 分割区域での作業
- 多くのバイトで並行して作業
- 長大語
- 下界
- 有向グラフへの応用
- データへの応用
- データ表現への応用
- データ構造への応用
- 画像
- ビットマップ画像
- 塗りつぶし・ラスター画像
- 分岐なし計算
- MOR,MXORのさらなる応用
- 双曲線平面のセル