IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

V�rification CRC en C++


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre r�gulier
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut V�rification CRC en C++
    Bonjour,

    Je cr�e un logiciel qui aura pour but d'interpr�ter les messages ADS-B des avions. Ces messages, dans leur forme binaire, ont un corps de 88 bits, et une somme de contr�le de 24 bits.
    Le polyn�me pour g�n�rer la somme de contr�le est de 24+1 caract�res, soit 25 : 1111111111111010000001001

    J'essaye donc de v�rifier cette somme de contr�le, mais j'ai vraiment du mal... J'ai suivi un cours sur developpez.com mais je n'arrive pas � faire ce que je veux, le programme m'indique que le message est faux alors qu'il est juste :/ Pourriez-vous me dire ce qui ne va pas ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #include <iostream>
    #include <String>
     
    int main() {
        std::string binMessage; // 88 bits + 24 checksum bits = 112 total
        std::string crc;
        std::string polynom = "1111111111111010000001001"; // 25 bits
     
        std::cout << "Entrer message : ";
        std::cin >> binMessage;
     
        crc = binMessage.substr(88, 24); // Sauvegarde du CRC transmis
     
        for(int i = 0; i != 88; i++) { // Pour les 88 bits du messages
            if(binMessage.substr(i, 1) == "1") { // Si on a 1
                for(int j = 0; j != 25; j++) { // Alors pour les 25 caractères suivant, dont le 1
                    if(binMessage[i + j] != polynom[j]) { // On fait un XOR avec le polynôme
                        binMessage.replace(i + j, 1, "1");
                    }
     
                    else {
                        binMessage.replace(i + j, 1, "0");
                    }
                }
            }
        }
     
        if(binMessage.substr(88, 24) == crc) {
            std::cout << "Message valide !";
        }
     
        else {
            std::cout << "Message invalide.";
        }
     
        return 0;
    }
    Je vous propose d'essayer avec 1000110101001000010000001101011000100000001011001100001101110001110000110010110011100000010101110110000010011000 qui est un message correct.

    Merci beaucoup d'avance

  2. #2
    Membre r�gulier
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut


    Pour que le message soit valide, il faut que les 24 derniers bits du message soient �gaux � 0.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [VB.NET] V�rification d'existance d'une table
    Par Hoegaarden dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 18/05/2004, 10h17
  2. g�n�rer un CRC
    Par Eug�nie dans le forum MFC
    R�ponses: 43
    Dernier message: 22/12/2003, 15h53
  3. JavaScript de v�rification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    R�ponses: 6
    Dernier message: 26/02/2003, 13h48
  4. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de donn�es
    R�ponses: 2
    Dernier message: 21/08/2002, 13h27
  5. codes crc
    Par patturbo dans le forum C++Builder
    R�ponses: 7
    Dernier message: 24/07/2002, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo