C/C++ Par où commencer ?

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#41
DeepSiderZ a dit:
Si je comprends bien ton exemple :

dans la variable header (uint) je met les deux premiers octets de mon paquet. Je récupère l'id de ce paquet en gardant les 14 premier bits (décalage de deux bits vers la droite du header).
Ensuite suivant la valeur de header & 3 (pourquoi 3 ^^ ?) je calcul ma longueur.
Dans le cas 1 je lis mal longueur sur 1 octet (mais je la lis à partir d'ou ? Du 3octets càd de l'octet suivant ceux du header ?).
Dans le cas 2 je lit sur 2 octets et dans le cas 3 c'est le premier octet décalé de 16 puis le second (ou le meme ?) décalé de 8 et enfin une derniere lecture.

Merci en tout cas !
&3 , & c'est pour faire un masque , 3 = les 2 derniers bits des 16 bits des 2 octets
c'est ces 2 bits la qui indiquent le nombre de d'octet(s) pour calculer la taille du message , les 14 premiers tu sais a quoi ca sert , ce masque c'est 11 en binaire
comme on veut garder que les 2 derniers bits on met tout les 14 autres a 0 => 0000000000000011 donc 3 en decimal ;)
on pourrait aussi prendre les 16 bits - les 14 bits qu'on a trouvé avant en leurs ajoutant 00 a la fin mais c'est moins swag :mrgreen:
ce resultat te dira combien d'octets a lire apres le header pour savoir la taille (comme c'est sur 2 bits ca peu etre que 0,1,2 ou 3) si c'est 0 ben ... c'est fini , si c'est 1 alors la taille du message est sur le prochain octets et le message commence juste apres cet octet , si tu as 2 alors la taille est sur les 2 octets et le message commence apres ces 2 octets , si c'est 3 alors pareil que 2 en remplacant 2 par 3
 
Haut Bas