Convertir tableau de de <n> byte en <n> int

Résolu
DIMUSERS Messages postés 37 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 2 septembre 2010 - 27 août 2010 à 13:20
DIMUSERS Messages postés 37 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 2 septembre 2010 - 2 sept. 2010 à 19:40
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

cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
27 août 2010 à 14:22
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
3
DIMUSERS Messages postés 37 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 2 septembre 2010
27 août 2010 à 14:48
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
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 sept. 2010 à 16:27
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 -
0
DIMUSERS Messages postés 37 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 2 septembre 2010
2 sept. 2010 à 19:40
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
0