Programmation C++
Résolu/Fermé
kira33
Messages postés
9
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
6 mai 2009
-
12 févr. 2009 à 20:32
kira33 Messages postés 9 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 6 mai 2009 - 13 févr. 2009 à 22:32
kira33 Messages postés 9 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 6 mai 2009 - 13 févr. 2009 à 22:32
A voir également:
- Programmation C++
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Programmation binaire - Guide
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
13 févr. 2009 à 11:20
13 févr. 2009 à 11:20
Ah oui, j'ai pas pensé à l'int overflow.
En fait, ces deux opérations vont permettre d'enlever les trois premiers bits de gauche. Les trois retenus vont disparaître.
En parlant de modulo, pour des unsigned char, cela revient à :
Ou retenons simplement que les trois bits de gauche vont disparaître comme si on appliquant un masque avec un AND bit à bit. C'est donc l'équivalent de :
De plus attention, à ne pas initialiser ta variable à 258 si c'est un unsigned char.
Cdlt
En fait, ces deux opérations vont permettre d'enlever les trois premiers bits de gauche. Les trois retenus vont disparaître.
En parlant de modulo, pour des unsigned char, cela revient à :
((a%224)%192%128);.
Ou retenons simplement que les trois bits de gauche vont disparaître comme si on appliquant un masque avec un AND bit à bit. C'est donc l'équivalent de :
a&31;Plus rapide.
De plus attention, à ne pas initialiser ta variable à 258 si c'est un unsigned char.
Cdlt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
12 févr. 2009 à 20:50
12 févr. 2009 à 20:50
Salut,
Tu multiplies par 8 puis tu redivises par 8. Conclusion, il se passe pas grand chose ^^.
Tu multiplies par 8 puis tu redivises par 8. Conclusion, il se passe pas grand chose ^^.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 févr. 2009 à 09:35
13 févr. 2009 à 09:35
Sauf si tu fait un overflow non ?
Les bits sortant sont remis de l'autre coté ?
Si c'est ce que je pense, ça fait une espèce de modulo.
Les bits sortant sont remis de l'autre coté ?
Si c'est ce que je pense, ça fait une espèce de modulo.
kira33
Messages postés
9
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
6 mai 2009
1
13 févr. 2009 à 22:32
13 févr. 2009 à 22:32
Effectivement, en cherchant dans le source j'ai compris que cette variable représente le champs " Fragment Offset + Flags" d'un paquet IP. Puisque les "flags" sont codés sur 3 bits, Le but est de garder que l'information "Offset" qui est sur 13 bits dans la variable "deplacement" car les trois premiers bits de gauche ont disparu .
Merci pour les repenses.
Merci pour les repenses.