Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで16進文字列をintに変換する方法をわかりやすく解説

Pythonで16進文字列をintに変換する基本

Pythonでは、組み込み関数 int() を使うことで、16進数の文字列を簡単に整数(int型)へ変換できます。16進文字列には一般的に「0x」というプレフィックスが付いており、その有無によって指定方法が少し異なります。

「0x」プレフィックスがある場合

文字列に「0x」プレフィックスが付いている場合は、int(文字列, 0) のように第2引数に 0 を指定します。こうすることで、Pythonがプレフィックスをもとに基数を自動的に判別してくれます。

>>> int("0xfe43", 0)
65091

「0x」プレフィックスがない場合

プレフィックスが付いていない裸の16進文字列の場合は、第2引数に 16 を渡して基数を明示的に指定します。

>>> int("fe43", 16)
65091

補足:大文字・小文字の扱いとエラー処理

int() は16進数で使われる英字(a〜f)について、大文字・小文字のどちらでも問題なく受け付けます。一方、変換できない文字が含まれている場合は ValueError が発生するため、外部からの入力を扱う際は try-except による例外処理を組み合わせると安全です。

>>> int("FE43", 16)
65091
>>> int("xyz", 16)
ValueError: invalid literal for int() with base 16: 'xyz'

このように、プレフィックスの有無に応じて第2引数を使い分けるだけで、16進文字列から整数への変換は簡単に行えます。日常的なデータ処理やログ解析などでもよく使われるテクニックなので、ぜひ覚えておきましょう。

  1. Pythonで16進数の文字列を10進数に変換する方法を解説

    この記事では、16進数の文字列を10進数に変換する問題の解決策について詳しく解説します。課題の概要16進数形式の文字列が与えられたとき、それを対応する10進数の値に変換することを目標とします。例えば、16進数の「F」は10進数では「15」に相当します。この問題には主に2つのアプローチがあります。力ずく(ブルートフォース)な手法:int関数を使った明示的な型変換組み込みモジュールを活用する手法:astモジュールのliteral_eval関数を使用方法1:int関数を使った変換最もシンプルで一般的な方法は、Pythonの組み込み関数であるint()を利用するものです。この関数は2つの引数を受け取り

  2. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ