Bonjour,
Si j'ai bien compris tu cherches à découper un long en plusieurs sous-variables de 4 bits (0 ~ 15) ?
À mon avis ce que tu cherches à faire c'est une "union".
Exemple de code pour pc :
#include <stdio.h>
typedef union {
unsigned long val;
struct {
unsigned long
subval0: 4,
subval1: 4,
subval2: 4,
subval3: 4,
subval4: 4,
subval5: 4,
subval6: 4,
subval7: 4;
};
} SuperLong_t;
int main(void) {
SuperLong_t l;
scanf("%lu", &(l.val));
printf("%d %d %d %d\n", l.subval0, l.subval1, l.subval2, l.subval3);
printf("%d %d %d %d\n", l.subval4, l.subval5, l.subval6, l.subval7);
return 0;
}
Avec une union+struct en "champs de bits" tu peut accéder à la valeur comme un long classique ou comme une série de sous-valeurs sur 4 bits.