任意のビット位置の値を参照する - lisp-cookbook-ja/common-lisp GitHub Wiki

数値

任意のビット位置の値を参照する

任意のビット位置の値を参照するにはldbを使用し、数値とバイト指定子を与えます。

(let ((i #x10)
      (pos 0))
  (ldb (byte 1 pos) i))
;=> 0

(let ((i #x10)
      (pos 4))
  (ldb (byte 1 pos) i))
;=> 1

任意のビット位置の値が1であるかを確かめるには、logbitpを使用します。

(let ((i #x10))
  (logbitp 4 i))
;=> T