Binary digits: Difference between revisions

Content added Content deleted
Line 577: Line 577:
50 toBinaryString // 110010
50 toBinaryString // 110010
9000 toBinaryString // 10001100101000</lang>
9000 toBinaryString // 10001100101000</lang>

=={{header|Scheme}}==
<lang lisp>;; most significant bit (a misnomer)
(define (msb n base)
(if (= n 0)
1
(let loop ((i 1))
(cond ((= i n) i)
((> i n) (quotient i base))
((< i n) (loop (* i base)))))))

;; print n in base (up to 10)
(define (base-print n base)
(let loop ((b (msb n base)))
(if (> b 0)
(begin
(display (quotient n b))
(set! n (remainder n b))
(loop (quotient b base))))))

(let loop ((n 0))
(display n)
(display " -> ")
(base-print n 2)
(newline)
(if (< n 32) (loop (+ 1 n))))</lang>


=={{header|Seed7}}==
=={{header|Seed7}}==