Salut !
> Doit y avoir un souci avec le code ci-dessous ; je ne sais pas trop à quoi
> il sert [...]
C'est un tableau de conversion entre des « num » (entiers consécutifs
entre -100 et 100) et des « bin » (entiers 16 bits non consécutifs :
0x0000, 0x3f80, 0x4000...). Ces « bin » sont probablement interprétés
par le hard.
> D'après vous, est-ce qu'il fonctionne de la même façon sur une machine
> 32bits et 64bits, ou y a-t-il un truc à améliorer ?
Ça devrait fonctionner tant que tes short int sont sur 16 bits. Tu peux
vérifier comme ça :
echo "main(){return 8*sizeof(short int);}" > foo.c
gcc foo.c && ./a.out; echo "$? bits"
Ça devrait t'afficher « 16 bits ».
Tu n'as pas donné la définition de SIGN_BIT, il faut aussi vérifier
qu'elle est identique en 32 et 64 bits.
Ciao,
Edgar.