【Python】16進数の扱い方

Pythonプログラミングでは、数値を扱う際にさまざまな進数が利用されます。

その中でも、16進数はコンピューターシステムやプログラミングで頻繁に使用されるため、理解しておくことが重要です。

この記事では、Pythonで16進数を扱う方法を初心者向けにわかりやすく解説します。

目次から探す

16進数とは

16進数とは、16個の数字を使って数を表現する方法です。

16進数では0から9までの数字と、A(10)・B(11)・C(12)・D(13)・E(14)・F(15)の6つのアルファベットを使って数を表現します

つまり、16進数では0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, Fの16個の数字を使います。

16進数は、コンピュータの内部で扱われるデータやアドレスを表現する際によく使われます。

なぜなら、16進数は2進数(0と1のみを使う数値表現)との変換が容易であり、コンピュータが扱いやすいからです。

例えば、1バイト(8ビット)のデータは、2桁の16進数で表現することができます。

それでは、Pythonプログラムで16進数を扱う方法を見ていきましょう。

Pythonでの16進数の扱い方

Pythonでは16進数を簡単に扱うことができます。

この章では、Pythonでの16進数の表記方法や変換方法、演算方法について詳しく解説します。

16進数の表記方法

Pythonでは、16進数を表す際に0xを先頭につけます。

例えば、16進数の1AはPythonでは0x1Aと表記します。

hex_number = 0x1A
print(hex_number)  # 26

この例では、16進数の1Aを変数hex_numberに代入し、その値を10進数で表示しています。

結果は26となります。

16進数の変換方法

Pythonでは、様々な数値を16進数に変換したり、16進数から他の数値に変換することができます。

10進数から16進数への変換

10進数を16進数に変換するには、 hex() 関数を使用します。

decimal_number = 26
hex_number = hex(decimal_number)
print(hex_number)  # '0x1a'

この例では、10進数の26を16進数に変換し、結果を表示しています。

結果は'0x1a'となります。

16進数から10進数への変換

16進数を10進数に変換するには、 int() 関数を使用します。

int() 関数の第2引数に基数を指定することで、指定した基数の数値を10進数に変換できます。

hex_number = '0x1a'
decimal_number = int(hex_number, 16)
print(decimal_number)  # 26

この例では、16進数の'0x1a'を10進数に変換し、結果を表示しています。

結果は26となります。

2進数から16進数への変換

2進数を16進数に変換するには、まず2進数を10進数に変換し、その後10進数を16進数に変換します。

binary_number = '1010'
decimal_number = int(binary_number, 2)
hex_number = hex(decimal_number)
print(hex_number)  # '0xa'

この例では、2進数の'1010'を16進数に変換し、結果を表示しています。

結果は'0xa'となります。

16進数から2進数への変換

16進数を2進数に変換するには、まず16進数を10進数に変換し、その後10進数を2進数に変換します。

hex_number = '0xa'
decimal_number = int(hex_number, 16)
binary_number = bin(decimal_number)
print(binary_number)  # '0b1010'

この例では、16進数の'0xa'を2進数に変換し、結果を表示しています。

結果は'0b1010'となります。

16進数の演算方法

Pythonでは、16進数同士の加算、減算、乗算、除算、剰余演算を行うことができます。

16進数の加算

16進数同士の加算は、通常の数値同士の加算と同じように行えます。

hex_number1 = 0x1A
hex_number2 = 0x0F
result = hex_number1 + hex_number2
print(hex(result))  # '0x29'

この例では、16進数の0x1A0x0Fを加算し、結果を16進数で表示しています。

結果は'0x29'となります。

16進数の減算

16進数同士の減算も、通常の数値同士の減算と同じように行えます。

hex_number1 = 0x1A
hex_number2 = 0x0F
result = hex_number1 - hex_number2
print(hex(result))  # '0xb'

この例では、16進数の0x1A0x0Fを減算し、結果を16進数で表示しています。

結果は'0xb'となります。

16進数の乗算

16進数同士の乗算も、通常の数値同士の乗算と同じように行えます。

hex_number1 = 0x1A
hex_number2 = 0x0F
result = hex_number1 * hex_number2
print(hex(result))  # '0x1e2'

この例では、16進数の0x1A0x0Fを乗算し、結果を16進数で表示しています。

結果は'0x1e2'となります。

16進数の除算

16進数同士の除算も、通常の数値同士の除算と同じように行えます。

ただし、結果は小数になる場合があるため、 float() 関数を使用して小数に変換してから表示することが望ましいです。

hex_number1 = 0x1A
hex_number2 = 0x0F
result = hex_number1 / hex_number2
print(float(result))  # 1.4666666666666666

この例では、16進数の0x1A0x0Fを除算し、結果を小数で表示しています。

結果は1.4666666666666666となります。

16進数の剰余演算

16進数同士の剰余演算も、通常の数値同士の剰余演算と同じように行えます。

hex_number1 = 0x1A
hex_number2 = 0x0F
result = hex_number1 % hex_number2
print(hex(result))  # '0xb'

この例では、16進数の0x1A0x0Fの剰余演算を行い、結果を16進数で表示しています。

結果は'0xb'となります。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す