2進10進数変換


 sprintfやoctを使います。
use strict;
use warnings;

# 10進数から2進数
my $bin = sprintf "%b", 1000;
print $bin, "\n"; # 1111101000

# 2進数から10進数
my $dec = oct "0b" . $bin;
print $dec, "\n"; # 1000
 自分で作る場合は、以下のようにして作ることができます。
use strict;
use warnings;

# 10進数から2進数
my $bin = dec2bin(1000);
print $bin, "\n"; # 1111101000

# 2進数から10進数
my $dec = bin2dec($bin);
print $dec, "\n"; # 1000

# 2進数に変換する(引数は10進数の正の整数)
sub dec2bin {
    my $val = shift;
    my $ret = '';
    my $i;
    
    return 0 if ($val == 0);
    while ($val > 0) {
        $i = $val % 2;
        $ret = "$i$ret";
        $val = int($val / 2);
    }
    return $ret;
}

# 10進数に変換する(引数は2進数の正の整数)
sub bin2dec {
    my $val = shift;
    my $ret = 0;
    my $i = 1;
    
    foreach my $num (reverse split //, $val) {
        if ($num == 1) {
            $ret = $ret + $i;
        }
        $i = $i * 2;
    }
    return $ret;
}

関連項目

10進16進数変換
n進数変換
漢数字変換
英語の数字変換