Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conversion Hexadécimale vers décimale pour paquets

Sujet résolu
    18 juin 2019 à 17:51:29

    Bonjour,

    je voulais savoir comment je pouvais faire pour convertir mes paquets de données, une conversion hexadécimale vers décimale.

    Mon code est actuellement 11 11 22 22 33 33 ...

    et il faudrait qu'il soit 17 17 34 34 ...

    il me faut vraiment une conversion et non rajouter une constante car la valeur de départ peut être modifiée.

    Par contre les paquets seront toujours par deux.

    Je vous met le code simplifié de mon programme ci-dessous:

    //
    //  main.c
    //  Programme test
    //
    //  Copyright © 2019 Allan Noël. All rights reserved.
    //
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    
    
    
    int main(void)
    {
        int i = 0;
        char ISK_HT3[24] = {0} ;
        char New_ISK_HITAG3[12] = {0} ;
    
     
        printf("Enter the ISK HITAG3: ");
        gets(ISK_HT3);
        
        /// 111122223333444455556666
        printf("\nISK avec chiffre separe: \n");
        for(i=0;i<24;i++)
        {
            ISK_HT3[i] = ISK_HT3[i] - 48;
            printf("%d ",ISK_HT3[i]);
        }
        
        New_ISK_HITAG3[0]=(ISK_HT3[0]*10)+ISK_HT3[1];
        New_ISK_HITAG3[1]=(ISK_HT3[2]*10)+ISK_HT3[3];
        New_ISK_HITAG3[2]=(ISK_HT3[4]*10)+ISK_HT3[5];
        New_ISK_HITAG3[3]=(ISK_HT3[6]*10)+ISK_HT3[7];
        New_ISK_HITAG3[4]=(ISK_HT3[8]*10)+ISK_HT3[9];
        New_ISK_HITAG3[5]=(ISK_HT3[10]*10)+ISK_HT3[11];
        New_ISK_HITAG3[6]=(ISK_HT3[12]*10)+ISK_HT3[13];
        New_ISK_HITAG3[7]=(ISK_HT3[14]*10)+ISK_HT3[15];
        New_ISK_HITAG3[8]=(ISK_HT3[16]*10)+ISK_HT3[17];
        New_ISK_HITAG3[9]=(ISK_HT3[18]*10)+ISK_HT3[19];
        New_ISK_HITAG3[10]=(ISK_HT3[20]*10)+ISK_HT3[21];
        New_ISK_HITAG3[11]=(ISK_HT3[22]*10)+ISK_HT3[23];
        
        printf("\n\nISK avec chiffre groupe par deux pour conversion: ");
        printf("\n%d %d ",New_ISK_HITAG3[0],New_ISK_HITAG3[1]);
        printf("%d %d ",New_ISK_HITAG3[2],New_ISK_HITAG3[3]);
        printf("%d %d ",New_ISK_HITAG3[4],New_ISK_HITAG3[5]);
        printf("%d %d ",New_ISK_HITAG3[6],New_ISK_HITAG3[7]);
        printf("%d %d ",New_ISK_HITAG3[8],New_ISK_HITAG3[9]);
        printf("%d %d\n\n",New_ISK_HITAG3[10],New_ISK_HITAG3[11]);
        
        
        printf("\nISK entier reconstitue pour verification: ");
        for(i=0;i<12;i++)
        {
            printf("%d",New_ISK_HITAG3[i]);
        }
        printf("\n\n");
        
    
        
        return 0;
    
    }
    



    Une image de l'exécution du code actuel:

    Merci d'avance de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      18 juin 2019 à 23:48:57

      J'ai pas vraiment compris la question, mais au niveau de la mémoire les nombres sont tous stockés en binaire, le décimal ou l'hexadécimal n'est qu'une façon de les afficher, pour afficher les entiers en décimal avec printf on met %d pour les afficher en hexadécimal on met %X
      • Partager sur Facebook
      • Partager sur Twitter

      Conversion Hexadécimale vers décimale pour paquets

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown