blechmusikの日記

いろいろなことを書いています。

AutoHotkey 用 10 進数を 2 進数に変換する末尾再帰関数

ごく単純なものではあるが、見出しの通りの関数を書いてみた。

;;; a decimal number in binary format
;;; n >= 1
to_binary_notation(n, m="")
{
    if (n = 0)
        return m
    else
        return to_binary_notation( n // 2, mod(n, 2) . m )
}

関数の引数として、変換したい数値を渡すこと。

msgbox, % to_binary_notation(9999)
;;; 10011100001111
msgbox, % to_binary_notation(99999)
;;; 11000011010011111