C/C++ Encodage de données dans le flux d'octets

Inscrit
15 Mai 2015
Messages
41
Reactions
0
#1
Bonjour,
je viens cette fois pour vous demander quelques petites choses sur la façon dont Actionscript encode des données dans un flux d'octet(readInt, writeInt, etc...).
J'ai vu qu'il existe des fonctions comme readInt() et readUnsignedInt() ou encore readShort() et readUnsignedShort() et même readByte() et readUnsignedByte().
Pour faire la différence entre un byte signed et unsigned j'ai trouvé une astuce plus ou moins potable : dans tous le cas je lis un byte en récupérant ça valeur et si je veux un unsigned je fais & 0xff. Mais pour un int ou un short je ne sais pas comment cela fonctionne. Si quelqu'un peut m'éclairer sur la façon dont un nombre négatif est traité.
Le seul qui est expliqué dans la documentation actionscript est le double car il suit une norme IEEE 754.
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#2
Salut !

Si tu cherches un peu sur le forum tu pourra trouver des reader/writter C++ très efficaces ! Perso j'utilise celui de LuaxY du projet AKM, il est vraiment bien ^^ !

PS: j'ai un fichier credit dans mon bot, hésitez pas à me dire si les sources viennent d'autres part que je le mette à jour :)
 
Inscrit
15 Mai 2015
Messages
41
Reactions
0
#4
Donc si j'ai bien compris pour chaque fonction unsigned, je n'ai qu'à appeler sa fonction simple et appliquer unsigned. Mais il me semble que pour un byte ça ne marchait pas. D'ailleurs il me semble aussi qu'un byte ne peut pas avoir une valeur négative, donc je ne vois pas l'intérêt de readByte et readUnsignedByte. (Dans la documentation Actionscript la fonction permet de lire une valeur entre -127 et 127, mais comment ?)
 
Inscrit
27 Juin 2012
Messages
238
Reactions
0
#5
readUnsignedByte peut lire de 0 à 255 si j'dis pas de conneries et readByte lui permet d'encoder de -127 à 127 car le premier bit est gardé pour indiqué le signe (+ ou -)
readByte != readBit
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#7
L'une appel l'autre et cast par derrière, ya les deux fonction juste pour que ce soit plus lisible et ne pas avoir des cast partout dans ton code.
 
Inscrit
15 Mai 2015
Messages
41
Reactions
0
#8
Donc je n'ai qu'à utiliser la fonction de base et demander une conversion à l'aide du préfixe unsigned. Merci de ces réponses :)
 
Haut Bas