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}}== |