Codage de hamming

Discutez d'informatique ici !
thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

codage de hamming

par thedream01 » 11 Avr 2009, 21:36

Bonsoir

Est-ce que quelqu'un aurait le code de hamming codé en C++?

merci



Argentoratum
Membre Relatif
Messages: 231
Enregistré le: 13 Sep 2007, 00:35

par Argentoratum » 11 Avr 2009, 21:45

Je l'ai fait en C, qu'est ce qui te pose problème ?

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 11 Avr 2009, 21:46

Disons que je n'ai jamais programmé en C++, et que là j'ai un projet à faire entièrement en C++! Je ne sais pas trop par où commencer

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 11 Avr 2009, 21:49

Notamment tout ce qui est manipulation de bits! Et comme je sais comment fonctionne le code de Hamming, j'aimerais bien le lire pour comprendre comment on fait!

Argentoratum
Membre Relatif
Messages: 231
Enregistré le: 13 Sep 2007, 00:35

par Argentoratum » 11 Avr 2009, 21:49

Le langage n'a que peu d'importance.
As-tu compris le codage de Hamming?

Argentoratum
Membre Relatif
Messages: 231
Enregistré le: 13 Sep 2007, 00:35

par Argentoratum » 11 Avr 2009, 21:52

Pour la manipulation de bits, faire des ou exclusif ou des décalages de bits cela n'a rien de compliqué.

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 11 Avr 2009, 21:53

Oui y a pas de soucis! À la main j'y arrive très bien!
Mais après, quand il s'agit d'utiliser des pointeurs pour désigner des tableaux, je me perds un peu...

Argentoratum
Membre Relatif
Messages: 231
Enregistré le: 13 Sep 2007, 00:35

par Argentoratum » 11 Avr 2009, 21:56

Dis moi ce que tu as fais pour l'instant et où est ce que tu bloques et je pourrais t'aider.

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 11 Avr 2009, 21:59

ça tient en combien de lignes à peu près?

Argentoratum
Membre Relatif
Messages: 231
Enregistré le: 13 Sep 2007, 00:35

par Argentoratum » 11 Avr 2009, 22:07

Cette question est sans interet, si tu veux tout savoir, il va falloir que tu fasses des fonctions qui :
- recopie les bits de données
- calcul les bits de controle
- decode le message recu
- calcul et corrige les ereurs
- gere transmission message en emission et reception (socket par exemple)
- etc...

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 15 Avr 2009, 02:22

char G[8][14] = {{1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1},
{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1}} ;


char lecture[4] ;

while (infile.Read(lecture, 4) != 0)
{
char tabLectBit[32] ;

for (int i = 0 ; i < 4 ; i++)
{
for (int j = 0 ; j < 8 ; j++)
{
tabLectBit[j + i*8] = (lecture[i] >> j) & 1 ;
}
}


char tabCodBit[56] ;
for (int i = 0 ; i < 56 ; i++)
tabCodBit[i] = 0 ;


char *p_tabLect, *p_tabCod ;

for (int i = 0; i < 4 ; i++)
{
p_tabLect = &tabLectBit[i*8] ;
p_tabCod = &tabCodBit[i*14] ;
ProduitCodage(p_tabLect, p_tabCod, G) ;
}


char tabCode[7] ;
for (int i = 0 ; i < 7 ; i++)
tabCode[i] = 0 ;

for (int i = 0 ; i < 7 ; i++)
{
for (int j = 0 ; j < 8 ; j++)
{
tabCode[i] += tabCodBit[i*j] << j ;

}
}

outfile.Write(tabCode, 7) ;


}


return TRUE;
}


void Client::ProduitCodage(char motSrc[8], char motCode[14], char G[8][14])
{

for (int i = 0 ; i < 14 ; i++)
{
for (int j = 0 ; j < 8 ; j++)
{
motCode[7-i] = motCode[7-i] ^ (motSrc[j] & G[7-j][i]) ;
}
}

return ;
}

thedream01
Membre Relatif
Messages: 289
Enregistré le: 20 Avr 2007, 12:57

par thedream01 » 15 Avr 2009, 02:26

Voici le code que j'ai tapé pour faire le codage. Ca ne marche pas!!!
Merci de m'aider

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 14:00

par fatal_error » 15 Avr 2009, 10:14

salut,

L'étape d'apres c'est de localiser l'erreur quand ca ne marche pas. Bon, j'en dis pas plus, parce que je connais pas le codage de hamming :marteau:
la vie est une fête :)

PrépaQuébec
Membre Relatif
Messages: 253
Enregistré le: 26 Juin 2007, 15:57

par PrépaQuébec » 17 Avr 2009, 01:14

:hein:

The dream, avec un code complet il serait plus facile de t'aider.........

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite