Go to the previous, next section.
procedure+: bit-string? object
Returns #t
if object is a bit string; otherwise returns
#f
.
procedure+: bit-string-length bit-string
Returns the length of bit-string.
procedure+: bit-string-ref bit-string k
Returns #t
if the kth bit is 1; otherwise returns
#f
. K must be a valid index of bit-string.
procedure+: bit-string-set! bit-string k
Sets the kth bit in bit-string to 1 and returns an unspecified value. K must be a valid index of bit-string.
procedure+: bit-string-clear! bit-string k
Sets the kth bit in bit-string to 0 and returns an unspecified value. K must be a valid index of bit-string.
procedure+: bit-substring-find-next-set-bit bit-string start end
Returns the index of the first occurrence of a set bit in the substring
of bit-string from start (inclusive) to end
(exclusive). If none of the bits in the substring are set #f
is
returned. The index returned is relative to the whole bit string, not
substring.
The following procedure uses bit-substring-find-next-set-bit
to
find all the set bits and display their indexes:
(define (scan-bitstring bs) (let ((end (bit-string-length bs))) (let loop ((start 0)) (let ((next (bit-substring-find-next-set-bit bs start end))) (if next (begin (write-line next) (if (< next end) (loop (+ next 1)))))))))
Go to the previous, next section.