katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011
-
22 juin 2011 à 20:53
katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011
-
24 juin 2011 à 13:34
Salut à tous!
J'ai pas mal de lacunes dans ce domaine et j'aimerai donc avoir vos avis!
J'ai un mot de 32bits que je dois former grâce à plusieurs paramètres que je reçois; typiquement j'ai:
long int mot_a_remplir;
char param_bit1_a_bit8;
char param_bit8_a_bit12;
//...
Etant donné que je dois remplir ce mot avec des paramètres de 4, 8 ou 16 bits; y-a-t'il un moyen de créer une fonction/macro qui prendrait un paramètre et sa position initiale pour les insérer dans le mot a remplir?
J'avoue ne pas connaitre grand chose en manipulation de bits (peut etre que ce que je veux n'est pas la meilleure chose à faire...) donc je suis preneur d'infos!
katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011 24 juin 2011 à 13:34
A vrai dire, mon programme est développé pour Windows & Linux avec des bibliothèques génériques, j'ai donc opté pour faire cela(pour ceux que ça intéresse):
/* how it works : */
/* (WORD & (~(MASK< clean bits of mask shifted by pos */
/* ((VALUE & MASK) < set bits of mask shifted by pos according to value */
cs_LA_Tupac
Messages postés305Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention18 janvier 20121 23 juin 2011 à 20:59
Un long int fait 2 words donc c'est plutôt un short que tu devrais avoir en entrée. Ensuite je pense que les fonction hiword() et loword() de la winapi devraient faire l'affaire.