; trailing zero-bits
(define (zerobits n)
(let loop ((n n) (b 0))
(if (odd? n) b (loop (/ n 2) (+ b 1)))))
(display (zerobits 18)) (display " ")
(display (zerobits 48)) (newline)
(define (zerobits n)
(vector-ref (vector 32 0 1 26 2 23 27 0 3 16 24 30 28 11 0 13
4 7 17 0 25 22 31 15 29 10 12 6 0 21 14 9 5 20 8 19 18)
(modulo (bitwise-and n (- n)) 37)))
(display (zerobits 18)) (display " ")
(display (zerobits 48)) (newline)
OyB0cmFpbGluZyB6ZXJvLWJpdHMKCihkZWZpbmUgKHplcm9iaXRzIG4pCiAgKGxldCBsb29wICgobiBuKSAoYiAwKSkKICAgIChpZiAob2RkPyBuKSBiIChsb29wICgvIG4gMikgKCsgYiAxKSkpKSkKCihkaXNwbGF5ICh6ZXJvYml0cyAxOCkpIChkaXNwbGF5ICIgIikgCihkaXNwbGF5ICh6ZXJvYml0cyA0OCkpIChuZXdsaW5lKQoKKGRlZmluZSAoemVyb2JpdHMgbikKICAodmVjdG9yLXJlZiAodmVjdG9yIDMyIDAgMSAyNiAyIDIzIDI3IDAgMyAxNiAyNCAzMCAyOCAxMSAwIDEzCiAgICAgIDQgNyAxNyAwIDI1IDIyIDMxIDE1IDI5IDEwIDEyIDYgMCAyMSAxNCA5IDUgMjAgOCAxOSAxOCkKICAgIChtb2R1bG8gKGJpdHdpc2UtYW5kIG4gKC0gbikpIDM3KSkpCgooZGlzcGxheSAoemVyb2JpdHMgMTgpKSAoZGlzcGxheSAiICIpIAooZGlzcGxheSAoemVyb2JpdHMgNDgpKSAobmV3bGluZSk=