cs_ALCHAN
Messages postés4Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention14 décembre 2004
-
8 mai 2004 à 21:15
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 2010
-
28 juil. 2004 à 21:50
Bonjour,
en 32 bit avec Borland C++ 5.02
1) comment travailler en overflow : (Prev = Prev*2^9)
2) comment extraite les 15 bits à partir du 5ème et avoir en décimale la valeur
pour un générateur de nombres aléatoires
Merci
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 28 juil. 2004 à 21:50
extraire les bits, utilise les decalage de bits, les operateurs sur les bits, et des masques. je comprend pas exactement ce que tu veux donc je vais te donner un exemple: tu veux isoler le 2eme octet (donc les puissance de 2 les plus grandes) d'un entier x (codé sur 4 octets, donc 32 bits):
int x = valeur;
int masque = 0x00 ff 00 00;
int resultat = x & masque;
//tu effectue un et bit a bit entre ton nombre et ton masque tu recupere donc les valeurs de tes 8 bits dont la valeur a été mise a 1 ds ton masque, et les autres bits sont a 0 pour le reste
resultat = resultat >> 16;
//tu affecte a résultat lui meme dont tous ses bits sont décalés a droite de 16 bits.
//remarque : les bits sortis sont perdus (ici ils etaient tous a zero dc cest pas un drame), donc tu aurais tt aussi bien pu faire :
int x = valeur;
int masque = 0x 00 00 00 ff
int resultat = resultat >> 16;
resultat = x & masque.
les fonctions sur les bits sont :
<< decalage a gauche
>> a droite
| ou logique bit a bit
& et logique
~ le not
jen ai peut-etre oublié, mais ca devrait deja te servir