[C++ Opérateur bit à bit] << et >>

<< et >> [C++ Opérateur bit à bit] - Programmation

Marsh Posté le 10-03-2002 à 00:46:43    

voilà le problème, je récupère un octet qui code deux valeurs entières: NoImmat sur les 4 bits de poids forts et NoPlace sur les 4 bits de poids faible. J'ai créé la struct suivante:  
 
typedef struct {unsigned noImmat :4; unsigned noPlace :4;} retourVoitureGaree;
 
pour récuperer NoImmat, c facile:  
 
 retourVoitureGaree compteRendu;
 compteRendu.noPlace = retour;

 
mais j'arrive pas à récupèrer l'autre ...  
ça, sa marche pas  :(  
 
 retourVoitureGaree compteRendu;
 compteRendu.noImmat = (retour << 4);

 
sa non plus
 
 retourVoitureGaree compteRendu;
 compteRendu.noImmat = (retour >> 4);

 

[jfdsdjhfuetppo]--Message édité par trueslash--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 10-03-2002 à 00:46:43   

Reply

Marsh Posté le 10-03-2002 à 01:40:45    

trueslash a écrit a écrit :

voilà le problème, je récupère un octet qui code deux valeurs entières: NoImmat sur les 4 bits de poids forts et NoPlace sur les 4 bits de poids faible. J'ai créé la struct suivante:  
 
typedef struct {unsigned noImmat :4; unsigned noPlace :4;} retourVoitureGaree;
 
pour récuperer NoImmat, c facile:  
 
 retourVoitureGaree compteRendu;
 compteRendu.noPlace = retour;

 
mais j'arrive pas à récupèrer l'autre ...  
ça, sa marche pas  :(  
 
 retourVoitureGaree compteRendu;
 compteRendu.noImmat = (retour << 4);

 
sa non plus
 
 retourVoitureGaree compteRendu;
 compteRendu.noImmat = (retour >> 4);
 
 
 




 
Tente une union:
 
union {
    unsigned char octet;
    struct{
    unsigned noImmat :4;
    unsigned noPlace :4;}  
}

 

[jfdsdjhfuetppo]--Message édité par bilgetz_42--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 10-03-2002 à 01:43:45    

merci, mais j'ai résolu mon pb, y avait un autre bug tapis dans l'ombre ...

Reply

Sujets relatifs:

Leave a Replay

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