[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] Re: Manipuler un bit en c



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

Attachment: pgp01004.pgp
Description: PGP signature