У меня есть число (3232251030), которое нужно перевести из десятичного в двоичный. Как только я получил двоичный файл, мне нужно разделить его 8 бит на цифры, чтобы получить IP-адрес.
Преобразование десятичного числа в двоичное просто:
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))); }
e.g. $num = bin2dec('0110110'); # $num is 54 $binstr = dec2bin(54); # $binstr is 110110
Ссылка: http://www.perlmonks.org/?node_id=2664
Итак, теперь мне нужно отделить 8 цифр от двоичного кода и сохранить его в числа, которые составляют IP-адрес.
$num = dec2bin('3232251030');
($num — это «11000000 10101000 01000100 00001110» в двоичном формате)
Мне нужно разделить и сохранить каждые 8 бит «11000000 10101000 01000100 00001110» в «192.168.60.150».
Хотите совет? Я ищу функцию разделения для этого.