hex関数

広告

「hex」関数は対象の文字列を16進数の数値と見なし、10進数の数値に変換します。

対象の文字列を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関数」を参照して下さい。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test11-1.pl

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

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

print "3B -> $num1¥n";
print "0xa4 -> $num2¥n";

上記を「test11-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

hex関数

( Written by Tatsuo Ikura )