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 :

Somme des hexadécimals en c#


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 0
    Points
    0
    Par défaut Somme des hexadécimals en c#
    Bonjour,
    je veux faire l'addition des hexadécimales contenu dans une chaine.
    ch="0013A2003
    somme=00+13+A2+00;
    mais j'ai pas trouver comment considérer les éléments comme des hexadécimales et faire l'addition.
    J'ai utiliser int.Parse(string) mais j'ai obtenu une erreur.
    pouvez vous m'aider.Merci
    voici mon code :
    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
     
     
                    string[] concat = new string[10];
                     int somme=0x00;
                    string input ="0013A200";
                    for (int i = 0; i < input.Length; i = i + 2)
                    {
                        int j = 0;
                        concat[j] = (input[i].ToString() + input[i + 1].ToString());
                        MessageBox.Show("concat" + concat[j]);
                        //affichage: 00 13 A2 00
                        string hexOutput = String.Format("0x{0:X}", concat[j]);
                        MessageBox.Show("hexoutput" + hexOutput);
                        //0x00 0x13 0xA2 0X00
                        int hex = int.Parse(hexOutput);
                        MessageBox.Show("hex=" + hex);
                        //affichage: erreur: format de la chaine d'entrée est incorrecte
                        j++;
                        somme +=hex;            
                    }

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 94
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Rawend Voir le message
    Bonjour,
    je veux faire l'addition des hexadécimales contenu dans une chaine.
    ch="0013A2003
    somme=00+13+A2+00;
    mais j'ai pas trouver comment considérer les éléments comme des hexadécimales et faire l'addition.
    J'ai utiliser int.Parse(string) mais j'ai obtenu une erreur.
    pouvez vous m'aider.Merci
    voici mon code :
    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
     
     
                    string[] concat = new string[10];
                     int somme=0x00;
                    string input ="0013A200";
                    for (int i = 0; i < input.Length; i = i + 2)
                    {
                        int j = 0;
                        concat[j] = (input[i].ToString() + input[i + 1].ToString());
                        MessageBox.Show("concat" + concat[j]);
                        //affichage: 00 13 A2 00
                        string hexOutput = Ststring.Format("0x{0:X}", concat[j]);
                        MessageBox.Show("hexoutput" + hexOutput);
                        //0x00 0x13 0xA2 0X00
                        int hex = int.Parse(hexOutput);
                        MessageBox.Show("hex=" + hex);
                        //affichage: erreur: format de la chaine d'entrée est incorrecte
                        j++;
                        somme +=hex;            
                    }
    Bonjour,

    La fonction Convert.ToInt32 répondra à tes attentes. Le but est de convertir la chaine de caractères representant ton nombre en hexa vers un vrai nombre. Pour ce faire, il faut le convertir en nombre d'ou la fonction Convert.ToInt32. Le premier paramètre est le nombre sous forme de chaîne de caractères et le second est la base (ici 16 (hexa)).
    Il te suffira, ensuite, de sommer les éléments au moyen d'une boucle.


    Une remarque, tu n'as pas du bien chercher car le premier exemple venant sur google est ce que tu souhaites. :p

    Bon courage

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Salut,
    en fait tu as deux problèmes :
    1. il ne faut pas rajouter le 0x
    2. il faut spécifier le format d'entrée à la fonction parse


    Ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string input = "0013A200";
                int somme = 0;
                for (int i = 0; i < input.Length; i+=2)
                {
                    string shex = (input[i].ToString() + input[i + 1].ToString());
                    int hex = int.Parse(shex, NumberStyles.HexNumber);
                    Console.WriteLine("hex = {0}", hex);
                    somme += hex;
                }
                Console.WriteLine("somme = {0}", somme);
    A+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 94
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par lead8209 Voir le message
    Salut,
    en fait tu as deux problèmes :
    1. il ne faut pas rajouter le 0x
    2. il faut spécifier le format d'entrée à la fonction parse


    Ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string input = "0013A200";
                int somme = 0;
                for (int i = 0; i < input.Length; i+=2)
                {
                    string shex = (input[i].ToString() + input[i + 1].ToString());
                    int hex = int.Parse(shex, NumberStyles.HexNumber);
                    Console.WriteLine("hex = {0}", hex);
                    somme += hex;
                }
                Console.WriteLine("somme = {0}", somme);
    A+
    Il ne faut pas oublier d'inclure System.Globalization. :p

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 243
    Points
    243
    Par défaut
    Petite précision par rapport à ce que te dis lead8209.

    N'oublie pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Globalization;

    http://msdn.microsoft.com/fr-fr/libr...v=vs.110).aspx

    A+


    [EDIT]
    Désolé, j'arrive trop tard

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 94
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par egautier18 Voir le message
    Petite précision par rapport à ce que te dis lead8209.

    N'oublie pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Globalization;

    http://msdn.microsoft.com/fr-fr/libr...v=vs.110).aspx

    A+


    [EDIT]
    Désolé, j'arrive trop tard
    Non mais c'est cool, tu as pu compléter le post !

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Bande de pinailleurs Vous avez raison ^^

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 0
    Points
    0
    Par défaut
    Merci pour l'aide, le problème est résolu

Discussions similaires

  1. [Access] Combinatoire : Liste article dont la somme des prix
    Par enibris dans le forum Langage SQL
    Réponses: 14
    Dernier message: 17/03/2006, 10h03
  2. Somme des valeurs de certaines lignes
    Par Tartenpion dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/02/2006, 16h46
  3. somme des champs null
    Par s.rais dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 09h05
  4. Réponses: 2
    Dernier message: 09/01/2006, 16h10
  5. Somme des champs ? existe t il une fonction ...
    Par dark_vidor dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/01/2006, 11h57

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