16 lines
485 B
Racket
16 lines
485 B
Racket
#lang racket
|
|
|
|
(define (try n)
|
|
(printf "Original number: ~s (0x~x)\n" n n)
|
|
(define 4octets (integer->integer-bytes n 4 #f))
|
|
(printf "Octets: ~a (byte-string: ~s)\n"
|
|
(string-join (map (λ(o) (~r o #:base 16))
|
|
(bytes->list 4octets))
|
|
":")
|
|
4octets)
|
|
(define m (integer-bytes->integer 4octets #f))
|
|
(printf "Back to a number: ~s (~a)\n"
|
|
m (if (= m n) "OK" "BAD")))
|
|
|
|
(for-each try '(#x200000 #x1fffff))
|