hex関数:16進数を表す文字列を10進数に変換する

Perl で用意されている組み込み関数の一つである hex 関数の使い方です。 hex 関数は対象の文字列を 16 進数の数値と見なし 10 進数の数値に変換します。

(Last modified: )

hex関数の書式と基本的な使い方

hex 関数は次のように定義されています。

hex
hex([EXPR])
対象の文字列を16進数の数値と見なし、10進数の数値に変換します。

パラメータ:
  EXPR  対象の文字列
戻り値:
  10進数の数値

省略可能な 1 番目の引数には対象となる文字列を指定します。省略された場合は変数 $_ が使用されます。関数が呼び出されると、引数に指定した文字列を 16 進数の数値と見なし 10 進数の数値に変換して戻り値として返します。

引数に指定する文字列は先頭に "0x" が付いていても付いていなくても構いません。

具体的には次のように記述します。

my $num1 = hex("3B");
my $num2 = hex("0xa4");

この場合、 "3B" は 10 進数の 59 に変換され、 "0xa4" は 10 進数の 164 に変換されます。

※8進数や2進数として文字列を解釈する場合は「oct関数」を参照して下さい。また10進数から16進数に変換する場合は「sprintf関数」を参照して下さい。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

print "3B -> ".hex("3B")."\n";
print "0xa4 -> ".hex("0xa4")."\n";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

hex関数:16進数を表す文字列を10進数に変換する(1)

16 進数を表す文字列を 10 進数の数値に変換した値を取得しました。

-- --

Perl で用意されている組み込み関数の一つである hex 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。