2010-10-02 18 views
5

Biorąc pod uwagę zmienną $foo zawierającą dane binarne, w jaki sposób uzyskać szesnastkową reprezentację $foo w języku Perl?

Odpowiedz

12

Jeśli $foo jest łańcuch zawierający dowolne dane, użyj unpack:

my $hex = unpack('H*', $foo); 

Jeśli to tylko liczbą całkowitą, należy użyć sprintf:

my $hex = sprintf('%x', $foo); # Or %X if you want upper-case letters 
2
$ perldoc -f hex 
… 
To present something as hex, 
look into "printf", "sprintf", or "unpack". 

==>

$hex = sprintf("%x", $foo); 
Powiązane problemy