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進数変換
漢数字変換
英語の数字変換