vecteur de bits en language C !!!!

vecteur de bits en language C !!!! - C - Programmation

Marsh Posté le 22-04-2010 à 12:26:35    

Bonjour tout le monde,
 
Je veux créer une matrice , formée par des vecteur de bits (6 bits). A ma connaissance la plus petite taille en langage c est celle du type caractère (char) qui est codé sur un octet. Et puisque j'aurais à utiliser des opérations bit à bit sur les éléments de ma matrice, je devrais utiliser que des entiers (codé min sur 2 octets).
Si j'utilse un entier, en saisie je dois à chaque fois convertir le nombre binaire de 6 bits en un entier, ce qui n'est pas pratique du tout, surtout avec une grande matrice.
J'ai chercher le type vecteur de bits en c mais j'ai pas trouvé.J'espère bien qu'il y a quelqu'un qui pourrait m'aider!
Merci d'avance.

Reply

Marsh Posté le 22-04-2010 à 12:26:35   

Reply

Marsh Posté le 22-04-2010 à 13:10:34    

ben soit tu travaille avec des tableaux de char[6] et tu y mets que des 0 et des 1, soit tu travailles qu'avec de simples char (pas besoin de int) et tu masques les 2 bits de poid fort. Sans en savoir plus sur ce que tu veux faire, je peux pas t'aider plus. Après, pour du calcul matriciel, regardes des libs comme la GSL


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-04-2010 à 14:36:35    

Citation :

A ma connaissance la plus petite taille en langage c est celle du type caractère (char) qui est codé sur un octet.

Il existe plus petit : les champs de bits. Voir par exemple http://www.squalenet.net/fr/ti/tut [...] nions.php5, le paragraphe III.
Cela dit, c'est souvent plus lent de travailler avec des données qui sont plus petites que la taille de l'accumaleteur de la CPU (AX ou EAX), car alors, il est procédé à des masquages par la CPU ou par le code généré par le compilateur.

Reply

Marsh Posté le 22-04-2010 à 16:41:00    

merci Rufo pour votre réponse mais je pense avec les char, on peut pas faire des opérations bit à bit (OR, XOR....), je dois manipuler des entiers pour ça.
Sinon les champs de bits proposé par Olivthill peuvent être intéressants , je vais regarder de près ceci.
Je vous remercie.

Reply

Marsh Posté le 22-04-2010 à 16:43:32    

un char, c'est un short int il me semble... donc ça doit être possible :/ De toute manière, tous les types sont basés sur les bits, donc forcément que les opérations sur les bits fonctionnent. Maintenant, que ça donne ce que tu attends, c'est à voir...
 
Edit : http://fr.wikipedia.org/wiki/C_(langage)#Types   char ou unsigned char  sont codés sur 8 bits. Ca devrait le faire ;)


Message édité par rufo le 22-04-2010 à 16:45:44

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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