Recentemente ho scritto uno script che ha analizzato una rappresentazione testuale di un singolo campo mese byte binario.Come posso convertire stringhe esadecimali in numeri in Perl?
(Non chiedere: - {)
Dopo armeggiare con sprintf per un po 'ho rinunciato e fatto questo;
our %months = qw/x01 1
x02 2
x03 3
x04 4
x05 5
x06 6
x07 7
x08 8
x09 9
x0a 10
x0b 11
x0c 12 /;
...
my $month = $months{$text};
Quale scappare, perché sto usando solo 12 numeri, ma c'è un modo migliore per farlo?
intendevi "0x1" invece di "x01"? –
@Nathan In questa particolare situazione no, ma in situazioni non-insane probabilmente si vorrà il 0x01, ma la tua risposta copre entrambe le situazioni, ed è per questo che l'ho accettata! –
Per il contrario, da decimale a esadecimale, vedere Domanda di overflow dello stack * [Come convertire i decimali in esadecimale in Perl] (http://stackoverflow.com/questions/10481001) *. –