Pythonでは16進数と10進数の変換を簡単に行うことができます。
この変換を理解することで、異なる表現方法でデータを扱う際に役立ちます。
本記事では、Pythonでの16進数と10進数の相互変換について説明します。
- 未経験者向けプログラミングスクール
- 現役エンジニアがしっかりサポート
- 卒業後も安心の転職・副業サポート
Pythonで16進数から10進数への変換方法
Pythonでは簡単に16進数から10進数へ変換できます。
特に、int関数を使用して変換することが一般的です。
以下に基本的な使い方を紹介します。
int()関数を使った基本的な変換
hex_number = "1A"
decimal_number = int(hex_number, 16)
print(decimal_number) # 出力: 26
このコードでは、16進数”1A”を10進数の26に変換しています。
大文字・小文字の対応
hex_number = "1a"
decimal_number = int(hex_number, 16)
print(decimal_number) # 出力: 26
Pythonのint関数では、大文字・小文字の違いを区別しないため、どちらを使っても同じ結果が得られます。
例外処理
try:
hex_number = "G1"
decimal_number = int(hex_number, 16)
except ValueError:
print("無効な16進数です")
無効な16進数を指定した場合、ValueError例外が発生するため、それをキャッチしてエラーメッセージを表示することができます。
- 現役エンジニアからスキルを学べる
- 満足度は驚異の97.4%
- 300社以上のIT企業で研修に導入
- 毎日9時〜21時まで、無料カウンセリングを開催中!
Pythonで10進数から16進数への変換方法
次に、10進数から16進数への変換について説明します。
この変換も簡単に行うことができます。
hex()関数を使用するのが基本的な方法です。
hex()関数を使った基本的な変換
decimal_number = 26
hex_number = hex(decimal_number)
print(hex_number) # 出力: 0x1a
このコードでは、10進数の26を16進数に変換しています。
0xの取り除き方
decimal_number = 26
hex_number = hex(decimal_number).replace("0x", "")
print(hex_number) # 出力: 1a
hex()関数はデフォルトで”0x”を付けますが、replace関数を使うことでこれを削除できます。
ゼロ埋めの方法
decimal_number = 26
hex_number = format(decimal_number, '04x')
print(hex_number) # 出力: 001a
ゼロ埋めをしたい場合、format関数を使うと指定した桁数に合わせてフォーマットできます。
16進数と10進数の相互変換における注意点
16進数と10進数の変換にはいくつか注意が必要です。
特に、大きな数値や負の数値の扱い方に注意してください。
大きな数値の扱い
large_hex = "FFFFFFFF"
decimal_number = int(large_hex, 16)
print(decimal_number) # 出力: 4294967295
16進数”FFFFFFFF”は10進数で非常に大きな数値となりますので、その扱いに注意が必要です。
負の数値の扱い
negative_decimal = -42
hex_number = hex(negative_decimal)
print(hex_number) # 出力: -0x2a
負の数値を扱う場合でも、Pythonは自動的に符号を保持して変換を行います。
浮動小数点数の扱い
float_number = 26.5
hex_number = float.hex(float_number)
print(hex_number) # 出力: 0x1.a000000000000p+4
浮動小数点数の場合、float.hex関数を使って16進数表記に変換することができます。
プログラミングスクール受講時には教育訓練給付制度を利用することで、受講料の最大80%の給付を受けることが可能です。
16進数と10進数の変換を使った実用例
16進数と10進数の変換は、日常的なプログラムや特定の技術的な用途で使用されます。
特に、ネットワークやメモリ管理において役立ちます。
ネットワークアドレスの変換
ip_hex = "C0A80001"
ip_decimal = [int(ip_hex[i:i+2], 16) for i in range(0, len(ip_hex), 2)]
print(".".join(map(str, ip_decimal))) # 出力: 192.168.0.1
この例では、16進数表記のIPアドレスを10進数のIPv4形式に変換しています。
メモリアドレスの扱い
mem_address = "0x7ffee30bff58"
decimal_address = int(mem_address, 16)
print(decimal_address) # 出力: 140732682218200
メモリアドレスを扱う場合、16進数表記から10進数への変換が必要です。
データの効率的な管理
hex_data = "1A2B3C"
decimal_data = int(hex_data, 16)
print(decimal_data) # 出力: 1715004
データを効率的に管理するために、16進数データを10進数に変換して処理することが一般的です。
- 20000人が学んだpythonの教材
- 正しい情報をまとめて入手
- 様々なゲームを作成しながら楽しくpythonが身に付く
- 自主学習派はこれ一択!
今なら1年間有効なzoomサポート付き!
まとめ: Pythonでの16進数と10進数の変換
Pythonでの16進数と10進数の変換は、簡単で効率的です。
本記事で紹介した方法を使用して、あらゆるシナリオでの数値変換に役立ててください。
Pythonの基本機能であるため、どの環境でも簡単に実行可能です。



コメント