#/usr/bin/perl
#二進位轉十進位
sub bin2dec {
return unpack("N", pack("B*", substr("0" x 32 . shift, -32)));
}
#十六進位轉十進位
sub hex2dec {
return unpack("N", pack("H*", substr("0" x 8 . shift, -8)));
}
#八進位轉十進位
sub oct2dec {
my $b = unpack("B*", pack("H*", substr("0" x 8 . shift, -8)));
$b =~ s/0([01]{3})/$1/g;
return bin2dec($b);
}
#十進位轉二進位
sub dec2bin {
my $b = unpack("B*", pack("N", shift));
$b =~ s/^0+//;
return $b;
}
#十六進位轉二進位
sub hex2bin {
my $b = unpack("B*", pack("H*", substr("0" x 8 . shift, -8)));
$b =~ s/^0+//;
return $b;
}
#八進位轉二進位
sub oct2bin {
my $b = hex2bin(shift);
$b =~ s/0([01]{3})/$1/g;
$b =~ s/^0+//;
return $b;
}
全站熱搜