Next: Cutting and Pasting Bit Strings, Previous: Construction of Bit Strings, Up: Bit Strings [Contents][Index]

- 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`k`th bit is 1; otherwise returns`#f`

.`K`must be a valid index of`bit-string`.

- procedure:
**bit-string-set!***bit-string k* Sets the

`k`th 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

`k`th 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)))))))))