VBA でビット反転など

自作クラスを作らずにVBAでビット列操作をするためには通常 Long型 (4 byte) を使用する。ただし、Long型の32bitのうち、1bitは符号ビットなので、実質簡単に使えるのは31bitなのだ。

そこで、「bを使用ビット数」とする「ビット反転関数 bturn」は次のようになるかね。

function bturn(x as Long, b as Integer) as Long
  'x : 反転させたい値
  'b : 使うビット数(桁数)
  bturn = x Xor (2 ^ b -1)
End Function
続きを読む