LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
10 août 2007 à 13:08
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
10 août 2007 à 15:29
Bonjour,
Je cherche un moyen pour décrypter un buffer contennat des octets
j'arrive parfaitement a le faire octet apr octet mais je me retrouve dans un cas ou j'ai un nombre décimal codé sur 2 octets et je en sais pas comment m'y prendre
j'ai essayer en les additionant ou en faisant un sprintf mais ca ne me donne aps el bon résultat:
par exemple avec 021C ca devrait me donner dans mon entier 540...
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 10 août 2007 à 13:31
Je ne comprend pas tres bien ton pb
Tu cherche juste a additionner des caracteres?
Si c le cas ou est le pb?
BYTE buffer[] = "abc";
int Ret = buffer[0] + buffer[1];
Ret = 195
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 10 août 2007 à 15:04
<< et | sont des opérateurs binaire. Comme ça le dit, ils agissent au niveau binaire.
<< et >> sont des décalages de bits. Sert simplement à "tasser" à droite ou à gauche (suivant le sens des flèches) de x bit la valeur actuelle.
Exemple
int test = 0xAA; // 10101010
int r = test<<2; // On décale de 2 bits
r egalera donc 0x2A8 qui représente 1010101000 en binaire
| représente un OR. Sera mieux expliqué par un exemple:
int test = 0xAA // 10101010int r test|0xCC; // 0xCC 11001100
r egalera donc 0x88 qui représente 10001000
Il s'est passé en gros ceci:
10101010
11001100
-----------
10001000
Tu comprends ce qui ce passe ? Dans le cas contraire, ouvre un bouquin d'assembler. Rien de mieux pour comprendre ce genre de chose.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 10 août 2007 à 15:15
T'as bien vue la correction que j'ai fais pour l'exemple du OR ?
Je pose la question car les posts ne sont distancés que d'une minute alors il est possible que tu n'est pas vue mon nouveau message avant de poster le tien.