n進数変換
Math::BaseCalcモジュールを使うと基数変換を簡単に行うことができます。
use strict;
use warnings;
use Math::BaseCalc;
my $calc13 = Math::BaseCalc->new(digits => [0..9, 'A'..'C']);
# 10進数から13進数への変換
my $num_10 = 20; # 10進数の20
printf "%s(10) => %s(13)\n", $num_10, $calc13->to_base($num_10);
# 20(10) => 17(13)
# 13進数から10進数への変換
my $num_13 = '2C'; # 13進数の2C
printf "%s(13) => %s(10)\n", $num_13, $calc13->from_base($num_13);
# 2C(13) => 38(10)
my $calc2 = Math::BaseCalc->new(digits => [0..1]);
# 13進数から2進数への変換
printf "%s(13) => %s(2)\n",
$num_13,
$calc2->to_base($calc13->from_base($num_13));
# 2C(13) => 100110(2)
関連項目
・10進16進数変換・2進10進数変換
・漢数字変換
・英語の数字変換
