Une bidouille de variable de long->char->int fontionne t-il ?

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.