4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Juliaで2進数=8進数=10進数=16進数の変換

Last updated at Posted at 2020-02-09

数値の表現

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
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?