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 :

Convertion Hexa to déci en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 27
    Par défaut Convertion Hexa to déci en C
    Bonjour,

    Je veus créer un prog. en C permettant d'afficher un base 10 , un nombre exprimé en héxadécimal passé en argument de la ligne de commande. Par exemple la commande ./ hexa2int 1a affichera : 26

    Voici ce que j' ai fais , mais ceci ne fonctionne pas.

    Pourquoi ?

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <math.h> 
    int main(int argc, char** argv) 
    { 
    int cpt; 
    int i; 
    int somme=0; 
    char tablettre[6]; 
    int tabchiffre[6]; 
    int tabvariable[6]; 
    if (argc>1) 
    { 
    tablettre[0]='a'; 
    tablettre[1]='b'; 
    tablettre[2]='c'; 
    tablettre[3]='d'; 
    tablettre[4]='e'; 
    tablettre[5]='f'; 
     
    for(cpt=0;cpt<6;cpt++) 
      { 
      tabchiffre[cpt]=cpt+1; 
       } 
     
    for(cpt=1;cpt<argc;cpt++) 
    { 
       for(i=0;i<6;i++) 
       { 
     
         if(argv[cpt]==tablettre[i]) 
         { 
         argv[cpt]=tabchiffre[i]; 
         printf("oui"); 
         } 
         else 
         { 
         printf("non"); 
          } 
       } 
     
    } 
     
     
    for(cpt=1;cpt<argc;cpt++) 
    { 
    somme=somme+(argv[cpt])*pow(16,argc-cpt-1); 
    } 
    printf("La somme des entiers indiqués en argument est : %dn",somme); 
    } 
    else 
    { 
    printf("Vous devez rentrer un argument pour que le programme fonctionnen"); 
    } 
      return 0; 
    }
    j'ai l'impression que le problème vient de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(argv[cpt]==tablettre[i])
    Merci

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Convertion Hexa to déci en C
    Citation Envoyé par duranton
    Je veux créer un prog. en C permettant d'afficher en base 10 , un nombre exprimé en héxadécimal passé en argument de la ligne de commande.
    hex -> num : strtoul() avec 16
    num - decimal - printf() avec "%d"

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 27
    Par défaut
    Je comprend pas trop ce que tu me di, peut tu m'en dire d'avantage stp.

    voici ce que j' ai fais depuis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    printf("l'argument entrée en hexa est : [%s]\n",argv[1]);
     
    d = strtoul(argv[1], 16);
     
    printf("la somme de l'argument en base 10 est : [%d]\n", d);
    merci

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par duranton
    Je comprends pas trop ce que tu me dis, peux tu m'en dire d'avantage stp.

    voici ce que j' ai fait depuis :
    C'est presque ça, mais visiblement, tu n'as pas lu la doc, ni inclus <stdlib.h>. Il manque un paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int d = (int) strtoul(argv[1], NULL, 16);

Discussions similaires

  1. convertion hexa vers ascii
    Par amina_en dans le forum Assembleur
    Réponses: 1
    Dernier message: 11/01/2012, 14h04
  2. MD5, convertion hexa en char/string
    Par mindofbuild dans le forum C
    Réponses: 4
    Dernier message: 14/08/2010, 14h01
  3. Convertion Hexa en IP
    Par onjaranaivo dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 19/07/2010, 17h56
  4. Convertion hexa binaire
    Par darkman13130 dans le forum C++Builder
    Réponses: 11
    Dernier message: 11/09/2008, 16h15
  5. [VB.NET] Convert chaine hexa -> int
    Par Tempotpo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2005, 08h53

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