Je veux bien une explication un peu plus complète. J'ai toujours manipuler mes bits comme ça. Qu'est ce que ta méthode apporte? Je ne connaissais pas. Ben On Wed, Mar 13, 2002 at 02:44:16PM, Jean-Francois Dive wrote: > oui, enfin, la manipulation de bit se fait la plupart du temps avec > des operations logiques et un masque. exmple: > > uint8_t a = 1; ( bin= 0000 0001) > > uint8_t b = a | 0x10; (bin 0000 0001 OR 0001 0000 = 0001 0001) > > Dont, tu applique un masque avec OR pour setter un bit, et un AND pour > clearer un bit (tu AND avec 0 dans le masque). > > JeF > > On Wed, Mar 13, 2002 at 12:55:09AM +0100, Benoit Joseph wrote: > > > > Tu dois définir des structures avec des champs de bits. genre > > > > struct One_by_One { > > a:1; > > b:1; > > c:1; > > d:1; > > e:1; > > f:1; > > g:1; > > h:1; > > }; > > > > struct Octet { > > octet:8; > > } > > > > Si tu veux faire référence parfois à l'un parfois à l'autre, il faut que > > tu fasse une union de ces deux structures. > > > > union { > > struct Octet o; > > struct One_by_One b; > > } plok; > > > > un appel au premier bit serait plok.b.a > > > > ou quelque chose dans le goût enfin... Tu peux aussi jouer avec des > > typedef pour faire joli... > > > > A+ > > > > Benoit > > > > PS: je ne garantis pas la syntaxe, mais l'idée y est. ;-) > > > > On Wed, Mar 13, 2002 at 12:34:36AM, Benoît Barbier wrote: > > > Bonjour, > > > > > > Désolé pour le hors-sujet. > > > Je voudrais savoir comment on peut manipuler un bit particulier d'un octet en c > > > Par ex. : > > > int test=0; > > > //Positionner le 3ème bit de poids faible à 1 > > > printf ("\n\nLa val du nb : %d après inversion du 3eme bit \n\n", test); > > > //Et il m'afficherait 4. > > > Ce serait pour faire des catégories par ex. > > > Un peut comme les droits d'accès sous linux un bit pour (en partant du poids faible) : > > > l'exécution, l'écriture, la lecture. > > > Y a-t-il moyen? > > > Comment fait-on? > > > > > > Merci d'avance > > > Benoît > > > > > > > > > > > > _______________________________________________ > > > Linux Mailing List > > > Archives: http://unixtech.be/mailman/listinfo/linux > > ---end quoted text--- > > > > -- > > > > Benoit JOSEPH > > Manex SPRL: benoit.joseph@manex.be > > Perso: joker@baby-linux.net > > benoit.joseph@teledisnet.be > > > > -- > -> Jean-Francois Dive > --> jef@linuxbe.org ---end quoted text--- -- Benoit JOSEPH Manex SPRL: benoit.joseph@manex.be Perso: joker@baby-linux.net benoit.joseph@teledisnet.be
Attachment:
pgp01001.pgp
Description: PGP signature