Convertir tableau de de <n> byte en <n> int [Résolu]

Signaler
Messages postés
37
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
2 septembre 2010
-
DIMUSERS
Messages postés
37
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
2 septembre 2010
-
Bonjour je lis (fread) 256 octets dans un fichier binaire (qui peuvent avoir une valeur de 0 à 255). Je voudrais convertir le contenu d'un de ces octets (pour m'en servir d'indice de déplacement de cette même liste d'octet.
Voici le code :
$Ry_data = fread($Ry_fp, 256)or die("can't read file step 1");
$Ry_DEP_CODE = $Ry_data[0];
echo "Ry_DEP_CODE = $Ry_DEP_CODE\n" ;
$Ry_Idx_ValCod = intval($Ry_DEP_CODE);
echo "Ry_Idx_ValCod = $Ry_Idx_ValCod\n" ;

Dans $Ry_data[0] il y a 0xCD (qui s'affiche correctement avec la commande echo)
Mais $Ry_Idx_ValCode contient toujours 0.
Pouvez vous m'aider ?
EL


st.antoine

4 réponses

Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

si j'ai bien compris (oui c'est bientot le weekend ^^)
à la place de :
$Ry_Idx_ValCod = intval($Ry_DEP_CODE);

met:
$Ry_Idx_ValCod = (int)$Ry_DEP_CODE;

ou tente:
$Ry_Idx_ValCod = intval($Ry_DEP_CODE, 16);

bonne journée
Messages postés
37
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
2 septembre 2010

Merci de ta réponse,
J'avais essayé les 2 premières solution qui me donnent 0.
La troisième était une bonne idée, mais elle me rend 13, c'est à dire qu'elle me convertit le caractère D (du 0xCD) en binaire (???!).
Merci de ton aide.


st.antoine
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Salut,

Bon, je suis à peu près sur de n'avoir pas compris

Veux tu passer d'une chaîne hexa à un décimal ?

hexdec($Ry_DEP_CODE);

Ce qui devrait te donner 205.

Est ce cela que tu cherches ?


Cordialement,


Kohntark -
Messages postés
37
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
2 septembre 2010

Ce n'est pas toi qui comprends rien, c'est moi.
La commande echo m'affiche l'équivalent ASCII de la valeur binaire contenue dans $Ry_Idx_ValCod. C'est en utilisant print_r j'ai pu constater mon erreur. C'est la raison pour laquelle j'ai accepté ta réponse.
Désolé pour le dérangement, c'est par ses erreurs et par l'aide des autres qu'on progresse.
Merci encore
st.antoine