Bonsoir à tous;
Dans le cadre d'implémenter le DES, je vous sollicite pour le problème suivant:

Ayant le mot : char msg[8]; (composé de 64 bits donc), et voulant manipuler les bits de ce mots individuellement selon une fonction précise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void InitPermut (char msg1[8], char R[4], char L[4]) {
int i;
static char output1[8];
 
for (i = 63; i >= 0 ; i--)
output1[IPDES[i]] = msg1[i];

et tel que:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
int IPDES[64] = { 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 1, 2, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 26, 33, 1, 41, 9, 39, 17, 57, 25, 32, 0, 40, 8, 48, 16, 56, 24 };
(les numéro représentent des numéros de bits)

oui je sais, y a un problème majeur là, d'où ma volonté de vouloir convertir le type char en type champs de bits, dans le but de manipuler individuellement des bits dans cette boucle.
Existe-t-il une autre solution pour contourner le problème?

Merci à vous de m'aider.