Non ça ne va pas ainsi : la commande push ajoute une nouvelle valeur au tableau en premier paramètre à chaque fois qu'elle est appelée.
Tu dois remplacer les lignes :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 push @decoded, bin2hex(substr($bitcode, 173, 177-171), undef, 0); push @decoded, ($bitpos * 5);
Ici, décodage est étrange : tu calcules la taille à décoder à partir de la différence 177 (fin) - 171 (début), mais tu décodes à partir de 173 (autre début).
Code : Sélectionner tout - Visualiser dans une fenêtre à part push @decoded, 5*bin2hex(substr($bitcode, 173, 177-171), undef, 0);
Si tu veux décoder 6 bits, écris directement 6 à la place de 177-171, ce sera plus clair. Par ailleurs, je suppose qu'il faut remplacer 173 par $bitpos (la position du décodage), non ?
Bon appétit.
Partager