Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conversion hexa

2 réponses
Avatar
Stéphane Müller
Bonjour,

J'ai la chaine de caractère suivante:

$str = chr(0) . chr(1) . chr(2);

que je voudrais afficher dans sa représentation hexa: "000102"

La seule solution que j'ai trouvé pour convertir cette chaine,
c'est de la traiter caractères par caractères :

foreach ( 0..length($str)-1 ) {
$char = substr($str,$_,1);
$hexa .= sprintf '%02X',ord($char);
}

mais je trouve cela un peu ""compliqué"". Auriez-vous une
solution plus simple ?

J'ai bien commencé à regarder du coté de "pack / unpack" mais
j'ai un peu de mal avec l'utilisation de ces fonctions.

Stéphane

2 réponses

Avatar
Nicolas George
"Stéphane Müller" wrote in message <f19lvm$cbc$:
J'ai bien commencé à regarder du coté de "pack / unpack" mais
j'ai un peu de mal avec l'utilisation de ces fonctions.


print unpack("H*", "12"), "n"

Sinon, tu pouvais aussi faire s/(.)/sprintf "%02X", ord $1/gse.

Avatar
Stéphane Müller
Impec, merci

"Nicolas George" <nicolas$ a écrit dans le
message de news: 4638647c$0$18134$
"Stéphane Müller" wrote in message
<f19lvm$cbc$:
J'ai bien commencé à regarder du coté de "pack / unpack" mais
j'ai un peu de mal avec l'utilisation de ces fonctions.


print unpack("H*", "12"), "n"

Sinon, tu pouvais aussi faire s/(.)/sprintf "%02X", ord
$1/gse.