Мне нужно преобразовать большие числа в perl от десятичной до двоичной и наоборот.Perl десятичное и двоичное преобразование с большими числами
Пример номер этой длины:
Dec: 76982379919017706648824420266
Bin: 111110001011111001010101000010011001000010101111001110000000000000000000000000000000000000000000
В форумах я нашел две функции:
sub dec2bin {
my $str = unpack("B32", pack("N", shift));
$str =~ s/^0+(?=\d)//; # otherwise you'll get leading zeros
return $str;
}
sub bin2dec {
return unpack("N", pack("B32", substr("0" x 32 . shift, -32)));
}
Но оба они, кажется, перестают работать, когда он получает такие большие числа .. .
Output of
bin2dec(111110001011111001010101000010011001000010101111001110000000000000000000000000000000000000000000)
is 1543163
and output of
dec2bin(76982379919017706422040262422)
is 11111111111111111111111111111111
Есть ли правильный способ сделать это с такими большими числами? Спасибо заранее!