Menu

Comparer le bit actuel et le bit précédent d'un fichier [Résolu]

kowalskic2 6 Messages postés jeudi 2 novembre 2017Date d'inscription 23 novembre 2017 Dernière intervention - 4 nov. 2017 à 00:12 - Dernière réponse : kowalskic2 6 Messages postés jeudi 2 novembre 2017Date d'inscription 23 novembre 2017 Dernière intervention
- 23 nov. 2017 à 19:06
Salut à tous, tout est dans le titre. J’ai le code suivant :
While (fread(&octetActu,1,sizeof(octetActu),pFile)!=0)
  {
      for(k=0;k<8;k++)
        {j=(octetActu<<k)&128;
        printf("%02x",j);
        if(j!=j) {printf("j");}
        else{printf("jj");}}
}

donc ce que je cherche à faire, c’est de pouvoir comparer le bit actuel avec le bit précédent du début jusqu'à la fin du fichier pFile. En clair si j’ai deux octets codé sur 8bits chacun et qui se suivent, du genre :
11011001 et 01100111, de lettre respective abcdefgh et ijklmnop. J’aimerais pouvoir comparer le bit ‘a’ avec le bit ‘b’ puis le bit ‘b’ avec le bit ‘c’ ensuite le bit ‘c’ avec le bit ‘d’ et ainsi de suite jusqu'à la fin du fichier. je ne sais pas si un sujet similaire à déjà été posé dans le forum,mais si quelqu’un a une idée, je prends. Merci.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Dalfab 348 Messages postés dimanche 7 février 2016Date d'inscription 19 juillet 2018 Dernière intervention - 4 nov. 2017 à 13:05
1
Merci
Ligne 6, comparer j à j n'est certainement ce que tu veux, il faut comparer le nouveau j au j lu précédemment.
int jprec = -1;
while (fread(&octetActu,1,sizeof octetActu,pFile)>0) {
    for ( int k = 0 ; k < 8 ; k++ ) {
        int j = (octetActu<<k) & 128;
        printf("%02x",j);
        if ( j != jprec ) printf("j");
        else printf("jj");
        jprec = j;
    }
}

Merci Dalfab 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22588 internautes ce mois-ci

Commenter la réponse de Dalfab
kowalskic2 6 Messages postés jeudi 2 novembre 2017Date d'inscription 23 novembre 2017 Dernière intervention - 5 nov. 2017 à 15:48
0
Merci
Grand merci dalfab, ton code fonctionne apart qu'il compare le premier bit du fichier avec "jprec" avant de continuer. toutefois pour récapituler, jprec=-1 représente le bit précédemment lu, "j=jprec" met le bit actuel à la place du bit précédent afin de la comparer au bit suivant. es-ce bien cela?
yg_be 6042 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 22 juillet 2018 Dernière intervention - 5 nov. 2017 à 16:00
pour éviter la première comparaison inutile, que tu faisais déjà dans ton code de départ:
int jprec = -1;
while (fread(&octetActu,1,sizeof octetActu,pFile)>0) {
    for ( int k = 0 ; k < 8 ; k++ ) {
        int j = (octetActu<<k) & 128;
        printf("%02x",j);
        if jprec != -1)
           if ( j != jprec ) 
                printf("j");
           else 
                printf("jj");
        jprec = j;
    }
}
kowalskic2 > yg_be 6042 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 22 juillet 2018 Dernière intervention - 7 nov. 2017 à 17:49
merci beacoup
yg_be 6042 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 22 juillet 2018 Dernière intervention > kowalskic2 - 23 nov. 2017 à 18:59
peux-tu marquer comme résolu?
Commenter la réponse de kowalskic2
kowalskic2 6 Messages postés jeudi 2 novembre 2017Date d'inscription 23 novembre 2017 Dernière intervention - 23 nov. 2017 à 19:06
0
Merci
ok
Commenter la réponse de kowalskic2