Manipulation de bits. (RESOLU)

Manipulation de bits. (RESOLU) - C - Programmation

Marsh Posté le 09-02-2010 à 01:42:51    

Bonjour. Je cherche à faire un petit convertisseur qui doit fonctionner comme suit :
 

Code :
  1. unsigned char a, b;
  2. unsigned int c;


 
 - prendre le bit 0 de a et de b, les placer à la fin du premier quartet de c, (les deux premiers bits du quartet devant être à 0)
 - puis idem avec les bits suivant de a et b, a stocker à la fin des quartet suivant de c, jusqu'à la fin.
 
Mais je n'ai aucune idée de comment tester un bit, l'écrire ailleurs etc. J'ai essayer avec des champs de bits, diverses opérations de masques mais je n'arrive pas à trouver le bon bout. Je ne demande pas une solution toute faite, juste une piste ou un lien vers un cours précis sur le sujet, merci d'avance !


Message édité par deuxbagettes le 16-02-2010 à 04:48:26
Reply

Marsh Posté le 09-02-2010 à 01:42:51   

Reply

Marsh Posté le 09-02-2010 à 06:54:49    

en vrac :

 
Code :
  1. #define TEST_BIT(VALUE,BIT) ((1<<(BIT)) & (VALUE))
  2. #define SET_BIT(VALUE,BIT)   ((1<<(BIT)) | (VALUE))



Message édité par Joel F le 09-02-2010 à 06:55:03
Reply

Marsh Posté le 09-02-2010 à 08:49:14    

En passant, il faudrait preciser si le premier bit, quartet, ... est le plus significatif ou le moins significatif (et faire attention si tu commences par 1 ou 0; le code de Joel numerote les bit du moins significatif au plus significatif en commencant par le bit 0).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 09-02-2010 à 16:36:35    

Merci, j'ai pigé le truc je crois, je vais essayer.
 
Justement, je developpe pour ne plateforme en big endian, et les donnes doivent etres stockées lsb. Ce sont des notion un peu nouvelle pour moi et il va falloir que je jongle un peu avant d'arriver au résultat voulu, mais j'ai bien compris le principe dans l'ensemble.
 
Merci beaucoup !

Reply

Marsh Posté le 09-02-2010 à 18:08:45    

Un Programmeur a écrit :

En passant, il faudrait preciser si le premier bit, quartet, ... est le plus significatif ou le moins significatif (et faire attention si tu commences par 1 ou 0; le code de Joel numerote les bit du moins significatif au plus significatif en commencant par le bit 0).


 
oui tention aux indiens :o J'ai fait l'hypothèse crasse que le PO travailler sur du x86 like

Reply

Marsh Posté le 09-02-2010 à 18:35:16    

Joel F a écrit :


 
oui tention aux indiens :o J'ai fait l'hypothèse crasse que le PO travailler sur du x86 like


 
Le PO ?
 
Non c'est un SH3 de chez Hitachi, avec leur compilo maison (C89).
 
Je commence mon implementation, je laisse le sujet ouvert au cas où ça marche pas comme je voudrais ^^
Merci encore.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed