Réponse acceptée !
Alors si ton tableau est codé comme suit par exemple:
tab[0] = 0x55;
tab[1] = 0x24;
etc...
Tout ce qu'il faut faire c'est d'assembler les 4 valeurs de 1 octet chacun pour en faire un DWORD 4 octets ce que je fais avec ma macro.
Si tu débute, je ne crois pas que tu comprendra quelque chose à décalement de bits et OR binaire et comme je suis extremement mauvais dans les explications (surtout pour les non-initiés), je laisse à ton prof (ou à un autre membre) le soin de t'expliquer tout ça en détail. Pour vulgariser, on peut faire comme suit:
0x20<<24 -> On tasse 0x20 à l'extreme gauche de notre DWORD
|0xD8<<16 -> On le fait suivre de 0xD8
|0xE0<<8 -> Lui même est suivit de 0xE0
|0x30 -> On insert la dernier valeur 0x30 à l'extreme droit du DWORD
On obtien donc: 0x20D8E030
Quand je dit que convertir un DWORD vers int n'a pas de sens c'est que l'on peut très bien faire:
int i = 0xFFDDEE00;
et
DWORD i = 2565235;
Un entier, de toute façon, sera transformé en hexa lors de la compilation, car c'est la même chose. Pour vulgariser un max, je dirais que la seule différence entre un nombre entier et un nombre hexa c'est que l'entier est compréhensible par l'homme et que l'hexa est compréhensible par la machine. Comme c'est la machine qui fait tout le travail, elle utilisera donc ce qu'elle comprend.
C++ (@++)