Pythonで16進数を10進数に変換する方法

python
記事内に広告が含まれています。

Pythonでは16進数10進数の変換を簡単に行うことができます。

この変換を理解することで、異なる表現方法でデータを扱う際に役立ちます。

本記事では、Pythonでの16進数と10進数の相互変換について説明します。

DMM WEBCAMP
  • 未経験者向けプログラミングスクール
  • 現役エンジニアがしっかりサポート
  • 卒業後も安心の転職・副業サポート

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例外が発生するため、それをキャッチしてエラーメッセージを表示することができます。

CodeCamp
  • 現役エンジニアからスキルを学べる
  • 満足度は驚異の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関数を使うと指定した桁数に合わせてフォーマットできます。

【リモートワークには必須】
キャリアに合わせてお得に光回線を利用しよう
ドコモ光
開通後、最短一ヶ月で35,000円のキャッシュバック!
 
auひかり
難しい条件一切なしで、最大12,7000円のキャッシュバック!
 
ソフトバンク光
高額キャッシュバックや豪華特典をお届け!

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進数に変換して処理することが一般的です。

techgym
  • 20000人が学んだpythonの教材
  • 正しい情報をまとめて入手
  • 様々なゲームを作成しながら楽しくpythonが身に付く
  • 自主学習派はこれ一択!

今なら1年間有効なzoomサポート付き!

まとめ: Pythonでの16進数と10進数の変換

Pythonでの16進数と10進数の変換は、簡単で効率的です。

本記事で紹介した方法を使用して、あらゆるシナリオでの数値変換に役立ててください。

Pythonの基本機能であるため、どの環境でも簡単に実行可能です。

【給付金が受けられる】おすすめプログラミングスクール!
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%
    転職できなければ全額返金DMM.comグループならで非公開求人も多数
  • テックアカデミー
    【転職保証】受講生の100%が内定獲得!9割以上が未経験からスタート!LINEヤフー監修&万全サポート
  • Aidemy Premium
    【給付金利用の相談歓迎】AI・データ分析学ぶならAidemy Premium
  • ウズウズカレッジ
    初心者・文系出身者でもOK、IT未経験からの専門的な就業サポート

コメント

タイトルとURLをコピーしました