;; Convert number into bits:
user=> (defn bits [n s]
(take s
(map
(fn [i] (bit-and 0x01 i))
(iterate
(fn [i] (bit-shift-right i 1))
n))))
#'user/bits
user=> (map (fn [n] (bits n 3)) (range 8))
((0 0 0) (1 0 0) (0 1 0) (1 1 0) (0 0 1) (1 0 1) (0 1 1) (1 1 1))
;; Convert number into bits:
user=> (defn bits [n s]
(take s
(map
(fn [i] (bit-and 0x01 i))
(iterate
(fn [i] (bit-shift-right i 1))
n))))
#'user/bits
user=> (map (fn [n] (bits n 3)) (range 8))
((0 0 0) (1 0 0) (0 1 0) (1 1 0) (0 0 1) (1 0 1) (0 1 1) (1 1 1))
Comments top
1 comment(s) for bit-shift-right.
From the IRC channel, a way to get zero-fill bit-shift-right:
There's also an open ticket for a built-in version.