representation d'ensemble

representation d'ensemble - C - Programmation

Marsh Posté le 15-12-2004 à 22:17:02    

bonjour je dois representer le sous ensemble
de 1 a 6 des entiers sous forme d'un int, avec opération
d'ajout et de suppression et de test d'appartenance. j'ai donc
 

Code :
  1. typedef int ssensemble;


 
apres je sais pas quoi mettre dans les autres opérations...
En fait, le premier bit, si il est a un, signifie que 1 appartient a l'ensemble, ect...
 
merci!

Reply

Marsh Posté le 15-12-2004 à 22:17:02   

Reply

Marsh Posté le 15-12-2004 à 22:33:52    

un char suffit
utilise les opérateurs bit à bit

Reply

Marsh Posté le 15-12-2004 à 22:34:14    

ou tu peux aussi utiliser des champs de bits tiens

Reply

Marsh Posté le 15-12-2004 à 22:40:56    

avec des union ?

Reply

Marsh Posté le 15-12-2004 à 22:42:18    

un char suffit, certes
operateur bit a bit, encore plus d'accord
oui je dois aussi faire union et inter
 
mais j'arrive absilument pas a pisser la moindre ligne...

Reply

Marsh Posté le 15-12-2004 à 22:45:38    

je parlé de la structure union ... :)

Reply

Marsh Posté le 15-12-2004 à 22:46:55    

m'en suis rendu compte apres avoir poster ;)

Reply

Marsh Posté le 15-12-2004 à 22:47:37    

Exemple :
 
union triplet  
   {
   float first;
   short second;
   char third;
   };
 
    u
-----------
[][][][][][]
        ----
        third
     -------
      second
------------
  first

Reply

Marsh Posté le 15-12-2004 à 22:50:12    

oui je vois, c pas mal.
le prob, ce que je suis OBLIGE de prendre un int... :(

Reply

Marsh Posté le 15-12-2004 à 23:03:45    

...

Reply

Marsh Posté le 15-12-2004 à 23:03:45   

Reply

Marsh Posté le 15-12-2004 à 23:09:33    

ok j'ai trouvé, me manque plus que l'appartance.
comment a partir d'un int, dire que le x ieme bit est positionnée ?

Reply

Marsh Posté le 15-12-2004 à 23:29:07    

avec un masque

Reply

Marsh Posté le 15-12-2004 à 23:31:21    

((toto >> x) & 1) ou bien (toto & (1 << x))
 
Enfin a adapter suivant que tes bits sont du cote fort ou faible.

Reply

Sujets relatifs:

Leave a Replay

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