犬も歩けばエンジニアになる

プログラミングや数学や物理に関する技術メモ

Julia - 10進数→N進数/N→10進数変換

Juliaで2進数や16進数へ変換するには?

Juliaで数値を変換するには10進数から変換する場合と10進数へ変換する場合で使う関数が異なります。

10進数からN進数に変換する

Int型10進数はstring関数を使うことにより、N進数の文字列型に変換できます。 baseで何進数かを、padで表示する桁数を指定できます。

string(10, base=2)    #10(10進数)を"1010"(2進数)に変換
string(255, base=16) #255(10進数)を"ff"(16進数)に変換
string(255, base=16, pad=4) #4桁まで表示させる。結果は"00ff"

N進数から10進数に変換する

String型のN進数はparse関数を使って、Int型10進数に変換できます。 baseで何進数から10進数へ変換するか指定します。

parse(Int ,"ff", base=16) #16進数"ff"を255へ変換
parse(Int ,"1010", base=2) #2進数"1010"を10へ変換

組み合わせることで2進数から16進数や16進数から2進数への変換ができます。

a = 1010 #二進数1010
a = string(a) #string型へ変換
a = parse(Int, a, base=2) #10進数へ変換
a = string(a, base=16, pad=4) #16進数へ変換
println(a) #結果、"000a"