ldbはシフトとORで書けるね

http://d.hatena.ne.jp/ytakenaka/20070624/p1

図のおかげで一発で理解できました。ありがとうございます。

class Fixnum
  def b
    "0b%03b" % self
  end
end

0b111                           # => 7
0b001                           # => 1

0b111001                        # => 57

# (ldb (byte 3 3) var)
(0b111001 >> 3).b               # => "0b111"
# (logior #b111000 #b001)
(0b111 << 3 | 0b001).b          # => "0b111001"
# (progn (setf (ldb (byte 3 3) var) 5)  var)
0b101 << 3 | 0b001              # => 41
41.b                            # => "0b101001"

# (ldb (byte 3 0) var)
(0b111001 & 0b111).b            # => "0b001"