Conversion HEXA/ASCII et ASCII/HEXA en C - Ressources > Autres ressources - Articles et téléchargements
Conversion HEXA/ASCII et ASCII/HEXA en C - Ressources > Autres ressources - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 
Articles-et-telechargements > Ressources > Autres ressources > Conversion HEXA/ASCII et ASCII/HEXA en C

Conversion HEXA/ASCII et ASCII/HEXA en C

Publié par david le 10/09/2006 (5476 lectures)
Ce soft permet de convertir une valeur hexa  en valeur ASCII ou décimale (dans ce cas il faut enlever +0x30)

unsigned int SciDec2Hex(void)
  {
    unsigned char CENTAINES;
    unsigned char DIZAINES;
    unsigned char UNITES;
    unsigned int TRAITEMENT;
   
    CENTAINES=(SciLireCar()-0x30);
    SciEnvoieCar(CENTAINES+0x30);
    DIZAINES=(SciLireCar()-0x30);
    SciEnvoieCar(DIZAINES+0x30);
    UNITES=(SciLireCar()-0x30);
    SciEnvoieCar(UNITES+0x30);
   
    TRAITEMENT=(CENTAINES*0x64);
    TRAITEMENT=(TRAITEMENT+(DIZAINES*0xA));
    TRAITEMENT=(TRAITEMENT+UNITES);
   
   
    return TRAITEMENT;
  }
On convertit une valeur décimale vers une valeur hexa, l'aquisition se fait depuis la SCI mais on peut facilement le modifier.
La valeur limite est 999, on peut une fois de plus le modifier pour aller plus loin

void SciHex2Dec(unsigned int DATA_HEX)
  {
    unsigned char CENTAINES;
    unsigned char DIZAINES;
    unsigned char UNITES;
   
    CENTAINES=0;
    DIZAINES=0;
    UNITES=0;
   
    if (DATA_HEX>0x63)
    {
        CENTAINES=(unsigned char)(DATA_HEX/100);
        DIZAINES=(unsigned char)((DATA_HEX%100)/10);
        UNITES=(unsigned char)(DATA_HEX-CENTAINES*100-DIZAINES*10);
      }

    if (DATA_HEX<=0x63)
      {
        CENTAINES=0;
        DIZAINES=(unsigned char)(DATA_HEX/10);
        UNITES=(unsigned char)(DATA_HEX%10);
      }

    SciEnvoieCar(CENTAINES+0x30);
    SciEnvoieCar(DIZAINES+0x30);
    SciEnvoieCar(UNITES+0x30);
  }

Ici c'est le contraire, on envoie une valeur hexa vers une valeur ASCII, on envoie le résultat vers la SCI
la limite est aussi 999 ici, la modification est un peu plus complexe mais se fait par tranche de 1000, ensuite 10000, ....

Article précédent Article suivant
Article précédent Temporisations logicelle ou par TIMER en ASM
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Conversion HEXA/ASCII et ASCII/HEXA en C - Ressources > Autres ressources - Articles et téléchargements