ah, autant pour moi , sorry :p Ce sont les (relativement) nouveau types POSIX, portables et clairs quand au nombre de bit que tu veux utiliser. JeF On Thu, Mar 14, 2002 at 11:48:06PM +0100, Benoit Joseph wrote: > > Le calcul booléen, je connais! :-) Pe même un peu trop... > Ce que je ne connaissais pas c'est les types que tu as employé... > > Merci tout de même > > Benoit > > On Thu, Mar 14, 2002 at 08:04:23AM, Jean-Francois Dive wrote: > > La méthode des opérations logiques est la plus classique. Se que tu explique est tout a fait > > correcte, mais uniquement pour déclarer des structures avec des champs > > de bits (utilisés typiquement pour déclarer des structures de packets, etc..). > > > > Une explication plus générale. Euuh ben je dois dire que ca pourrais prendre > > trop de place sur un email. Le plus simple a mon avis, c'est que tu relook une > > explication générale des mathématique booléenne, tout deviendra très clair. > > Ensuite, il faut trouver une explication sur les math booléennes en C pour > > la notation, pas trop compliqué, il faut juste connaitre les opéarateurs: > > > > & (AND), | (OR), >> << (shift), etc. etC.. > > > > JeF > > > > On Wed, Mar 13, 2002 at 04:13:50PM +0100, Benoit Joseph wrote: > > > > > > 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 > > > > > > > > -- > > -> 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 -- -> Jean-Francois Dive --> jef@linuxbe.org
Attachment:
pgp00998.pgp
Description: PGP signature