Découpage en paquet de 4 bits

HommeCocoa

Membre actif
3 Janvier 2003
173
0
Vevey - Suisse
Salut à tous,

J'ai quelques connaissances en C mais je ne suis pas un pro et j'ai un petit problème:

J'aimerai en faite à paritir d'une suite de bits entré par l'utilisateur que mon programme (qui est pour tout vous dire un décodeur BCD - Binaire) les découpe en groupe de 4 bits.

Exemple:
L'utilisateur entre 110010101001
le programme saisi ces donnée à l'aide soit de "gets" ou de "scanf" je ne sais pas lequel des deux est le plus approprié?

puis le programme en fait des paquets de 4 bits:
1100 1010 1001
puis j'aimerai encore qu'il mette chaque bit dans une variable,
par ex: il met les 4 premiers bits dans le variable A, B, C, D, les 4 suivant dans les variable E, F, G, H ,etc......

Et le tout sans s'occuper des zeros non signifiquatifs......

Enfin bref c'est asser tordu comme truc mais help help help svp!!!

Merci d'avance
David...
 
Ce que tu veux faire cela s'appelle en programmetion redefinition de données. En effet le langage C permet de definir ce qu'on appelle des structures.
Ce sont en fait la représentation sous plusieurs formes (structures) d'une même suite de données.
Pour être précis, ta suite de bits occupe une zone mémoire disons 24 bits.
Tu peux déclarer une variable (chaine de 24 bits) pouvant stocker l'ensemble de ces bits.
Tu peux également définir une structure composée de 6 champs (ou variables) qui sont des chaines de 4 bits chacun et appliquer ce 'masque' à la même zone mémoire.
De même tu peux déclarer une structure de 24 champs ou variables (les 24 premières lettres de l'alphabet) de 1 bit chacun et appliquer également ce masque à la même zone mémoire.
Pour indication, en C le masquage se fait par l'affectation (=) pour en fait addresser la même zone mémoire.
a=b en C veut dire que les 2 variables a et b désignent la même zone mémoire. Surtout lorsqu'il s'agit de chaines de bits.
 
Merci pour ces réponses,

Donc en faite je dois saisir ces bits avec scanf puis appliquer des masques pour pouvoir les découper en packet de 4 bits? Mais si je saisi avec scanf, la suite de bit sera considérée comme un grand nombre décimal non? Je ne suis pas sur d'avoir tout compris!!! A vrai dire........
 
Ce que je voulais préciser dans mes propos est très simple et n'a rien avoir avec scanf ou quoi que ce soit.
scanf est une fonction permettant de récuperer une chaine de caractères.
Par contre ce que je veux dire c'est que toute donnée peut être vue de plusieurs façons.
Exemple : un octet peut être consideré comme étant une chaine de 8 bits ou 8 fois 1 bit ou 2 fois 4 bits. Cela dépend du masque appliqué sur la donnée. Une structure est la forme utilisée pour définir un masque.