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"