数値の表現
Juliaでは2進数,8進数,10進数,16進数のリテラルが利用できます。10進以外の表記にはプレフィックスをつけます。
# 2進数
julia> b = 0b1010
0x0a
# 8進数
julia> o = 0o12
0x0a
# 10進数
julia> d = 10
10
# 16進数
julia> h = 0xa
0x0a
この記事では,これらの表記を相互変換する方法について説明します。
整数の変換
整数の型を変更すると,REPLに表示される数値は,10進または16進に固定されます。
# 10進表記
# ほかにも Int8, Int16, Int32, Int64が利用できる
julia> Int(0xa)
10
# 16進表記
# ほかにも UInt8, UInt16, UInt32, UInt64が利用できる
julia> UInt(10)
0x000000000000000a
数値を文字列に変換
数値リテラルを文字列に変換するには,string()
を使います。デフォルトでは10進数表記になります。基数を変更するには,base
オプションを使います。
# 10進数表記の文字列
julia> string(0b1010)
"10"
# 2進数表記
julia> string(10,base=2)
"1010"
# 8進数表記
julia> string(10,base=8)
"12"
# 16進数表記
julia> string(10,base=16)
"a"
文字列を数値に変換
数値表現を含む文字列を,数値型に変換するには,parse()
を使います。第1引数には変換後の整数型(IntやUIntなど),第2引数に文字列による数値表現を指定します。オプションとして,第3引数(base=
)で基数指定ができます。以下のルールがあります。
1.数値表現にプレフィックスがついている場合には,この関数はそれに応じた数値を返します。
2.プレフィックスがない場合はデフォルトでは10進数として扱います。
3.プレフィックスがない場合に任意の基数に合わせるには,base=
オプションを使います。
# Intに変換(プレフィックスなし=10進として解釈される)
julia> parse(Int,"10")
10
# Intに変換(プレフィックスあり;以下の例では16進として解釈される)
julia> parse(Int,"0x10")
16
# Intに変換(プレフィックスなし;16進として解釈させる)
julia> parse(Int,"10",base=16)
16