j'ai déclaré une structure; un registre 48 bit accessible chaque 6 bits comme suit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
typedef struct reg48 {
	unsigned int   b7:6 ,b6:6 ,b5:6 ,b4:6, b3:6, b2:6, b1:6, b0:6;
} reg48;
 
typedef union reg48_6 {
	unsigned __int64 reg;// pour un accés à toute la valeurs
    reg48 b;
}reg48_6;
Et quand j'utilise ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
s.reg=0x5bdadd934fad;
	cout<<hex<<s.reg<<"\n";
    cout<<hex<<s.b.b0<<" "<<s.b.b1<<" "<<s.b.b2<<" "<<s.b.b3<<" "<<s.b.b4<<" "<<s.b.b5;
    cout<<" "<<hex<<s.b.b6<<" "<<s.b.b7<<"\n";
 
s.reg=0x5bda5d934fad;
	cout<<hex<<s.reg<<"\n";
    cout<<hex<<s.b.b0<<" "<<s.b.b1<<" "<<s.b.b2<<" "<<s.b.b3<<" "<<s.b.b4<<" "<<s.b.b5;
    cout<<" "<<hex<<s.b.b6<<" "<<s.b.b7<<"\n";
ça me donne la même décomposition pour les 2 DIFFERENTS NOMBRES!!, et elle est fausse!!!.
j'ai affiché en binaire, j'ai remarqué que 2 bits aux milieu sont ignoré!!!

je ne comprend pas pourquoi?
COMMENT FAIRE UNE DéCOMPOSITION DE MON REGISTRE?