Pythonは、初心者から上級者まで幅広く使われるプログラミング言語です。
その理由の一つは、様々なデータ型や計算方法が簡単に扱えることです。
今回は、Pythonで2進数を使いこなす方法をわかりやすく解説します。
Pythonでの2進数の表現方法
Pythonで2進数を表現する方法はいくつかあります。
ここでは、2進数リテラル、bin()関数
、format()関数
、f-stringの4つの方法を紹介します。
2進数リテラル
Pythonでは、2進数を表すリテラルとして、数値の前に0b
または0B
を付けることができます。
以下の例では、2進数の1010
を10進数で表現しています。
binary_number = 0b1010
print(binary_number) # 10進数で表示される
10
このように、0b
を付けることで2進数リテラルを作成し、10進数に変換して表示することができます。
bin()関数
bin()
関数は、10進数の整数を2進数の文字列に変換します。
以下の例では、10進数の10
を2進数の文字列に変換しています。
decimal_number = 10
binary_string = bin(decimal_number)
print(binary_string) # 2進数の文字列で表示される
0b1010
このように、 bin()
関数を使って10進数を2進数の文字列に変換することができます。
format()関数
format()
関数を使って、10進数の整数を2進数の文字列に変換することもできます。
以下の例では、10進数の10
を2進数の文字列に変換しています。
decimal_number = 10
binary_string = format(decimal_number, 'b')
print(binary_string) # 2進数の文字列で表示される
1010
このように、 format()
関数を使って10進数を2進数の文字列に変換することができます。
format()
関数の第二引数に'b'
を指定することで、2進数に変換されます。
f-string
Python 3.6以降では、f-string(フォーマット済み文字列リテラル)を使って、10進数の整数を2進数の文字列に変換することができます。
以下の例では、10進数の10
が代入された変数decimal_number
を2進数の文字列に変換しています。
decimal_number = 10
binary_string = f"{decimal_number:b}"
print(binary_string) # 2進数の文字列で表示される
1010
このように、f-stringを使って10進数を2進数の文字列に変換することができます。
f-string内で{}
で変数を囲み、:
の後にb
を指定することで、2進数に変換されます。
以上の4つの方法を使って、Pythonで2進数を表現することができます。
それぞれの方法に特徴があるので、好みや使い勝手で選んで利用してください。
Pythonでの2進数の変換
Pythonでは、2進数と他の進数(10進数、16進数、8進数など)の変換が簡単に行えます。
この章では、それぞれの変換方法を詳しく解説していきます。
10進数から2進数への変換
10進数を2進数に変換する方法はいくつかあります。
ここでは、 bin()
関数、 format()
関数、f-string
を使った方法を紹介します。
bin()関数
を使った方法
bin()
関数は、10進数を2進数の文字列に変換します。
以下の例では、10進数の10
を2進数に変換しています。
num = 10
binary_num = bin(num)
print(binary_num)
0b1010
bin()
関数の結果は、0b
というプレフィックスが付いた2進数の文字列になります。
format()関数
を使った方法
format()
関数を使って、10進数を2進数の文字列に変換することもできます。
以下の例では、10進数の10
を2進数に変換しています。
num = 10
binary_num = format(num, 'b') # 第二引数を'b'にすると2進数(バイナリ)になる
print(binary_num)
1010
format()
関数の結果は、プレフィックス0b
が付かない2進数の文字列になります。
f-stringを使った方法
Python 3.6以降では、f-string
を使って10進数を2進数に変換することができます。
以下の例では、10進数の10
を2進数に変換しています。
num = 10
binary_num = f"{num:b}" # {変数名:b} の形式で2進数に変換できる
print(binary_num)
1010
f-string
を使った方法でも、プレフィックス0b
が付かない2進数の文字列になります。
2進数から10進数への変換
int()関数
を使った方法
2進数の文字列を10進数に変換するには、 int()
関数を使います。
以下の例では、2進数の文字列'0b1010'
を10進数に変換しています。
binary_num = '0b1010'
num = int(binary_num, 2) //第二引数に変換元の進数の基数を指定する
print(num)
10
int()
関数の第2引数に2
を指定することで、2進数の文字列を10進数に変換できます。
他の進数から2進数への変換
hex()関数
を使った方法
16進数の文字列を2進数の文字列に変換するには、 hex()
関数と bin()
関数を組み合わせて使います。
以下の例では、16進数の文字列'0xA'
を2進数に変換しています。
hex_num = '0xA'
num = int(hex_num, 16) # 16進数を10進数に変換する
binary_num = bin(num) # 10進数を2進数に変換する
print(binary_num)
0b1010
16進数から2進数に直接変換するよりもシンプルであるため、この書き方をするのが一般的です。
oct()関数
を使った方法
8進数の文字列を2進数の文字列に変換するには、 oct()
関数と bin()
関数を組み合わせて使います。
以下の例では、8進数の文字列'0o12'
を2進数に変換しています。
oct_num = '0o12'
num = int(oct_num, 8)
binary_num = bin(num)
print(binary_num)
0b1010
以上で、Pythonでの2進数の変換方法です。