#/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;
}

搗蛋鬼 發表在 痞客邦 PIXNET 留言(0) 人氣()