Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (integer->byte a)
- (define (iter v k i)
- (begin
- (vector-set! v i (remainder k 2))
- (if (= i 7) v (iter v (quotient k 2) (+ i 1)))))
- (if (or (> a 255) (< a 0))
- 'number-conversion-error
- (iter (vector 0 0 0 0 0 0 0 0) a 0)))
- (define (byte->integer v)
- (define (iter i S)
- (if (= i 8) S (iter (+ i 1) (+ S (* (vector-ref v i) (expt 2 i))))))
- (iter 0 0))
- (define (get-bit v i)
- (= (vector-ref v i) 1))
- (define (set-bit a i)
- (begin
- (vector-set! a i 1)
- a))
- (define (reset-bit a i)
- (begin
- (vector-set! a i 0)
- a))
- (define (invert-bit a i)
- (begin
- (vector-set! a i (remainder (+ (vector-ref a i) 1) 2))
- a))
Advertisement
Add Comment
Please, Sign In to add comment