RosettaCodeData/Task/Binary-digits/OCaml/binary-digits.ocaml
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

12 lines
300 B
Text

let bin_of_int d =
if d < 0 then invalid_arg "bin_of_int" else
if d = 0 then "0" else
let rec aux acc d =
if d = 0 then acc else
aux (string_of_int (d land 1) :: acc) (d lsr 1)
in
String.concat "" (aux [] d)
let () =
let d = read_int () in
Printf.printf "%8s\n" (bin_of_int d)