二進数変換
30分プログラム、その770。整数を二進数に変換してみる。
SMLには右シフトとかのビット演算ないらしく、ちょっととまどった。
使い方
- bits 0; val it = [0] : int list - bits 3; val it = [1,1] : int list - bits 2; val it = [1,0] : int list
ソースコード
fun bits n = let fun bits_rev n = if n = 0 then [] else (n mod 2) :: bits_rev (n div 2) in if n = 0 then [0] else List.rev (bits_rev n) end;