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 :

Longue Hexa to Decimal et vis-versa


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 13
    Par défaut Longue Hexa to Decimal et vis-versa
    Salut,
    Je suis entrain de développer une application de gestion de vente et je devrais prise en compte les anciens Codes à barres du magasin. Alors le problème est que les anciens code sont des nombres hexadécimal de 18 chiffres et pour ajouter un nouveau Code à barres je dois convertir le dernier Code à barres en Décimal (car Int64 ne supporte pas ma taille des nombres) puis l'incrémenter et enfin le reconvertir en Hexa.

    J'ai essayé de convertir le Hexa en Décimal et l'inverse mais je n'arrive pas. J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Hexa to Decimal
    Decimal bc = Convert.ToInt64(dt.Rows[0]["BC"].ToString(),16); // La valeur était trop grande ou trop petite pour un UInt64.
    //et
    Decimal bc = Decimal.Parse(dt.Rows[0]["BC"].ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); //Le style de nombre AllowHexSpecifier n'est pas pris en charge sur les types de données à virgule flottante.
     
    // Decimal to Hexa
     
    bc.toString("X"); // Format inconnue.
    Cordialement

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Il suffit de diviser le code hexa en 3 parties de 6 digits hexa (H1 poids forts ,H2 et H3 poids faibles), de convertir H1,H2 et H3 en decimal donnant D1,D2 et D3.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Decimal m = 0x1000000 ;
    Decimal bc = (D1*m+D2)*m + D3 + incrément
    Pour récupérer un code en hexa à partir de bc, on le décompose en bouts de 6 digits, que l'on pourra convertir en int et donc afficher en hexa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int i3 = Convert.ToInt32(bc % m) ;
    int i2 = Convert.ToInt32((bc -bc3) % m*m)
    int i1 = Convert.ToInt32(bc /m*m)

Discussions similaires

  1. remplacer des chiffres par des lettres, & vis versa
    Par Argorate dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/08/2006, 20h36
  2. Convertir un texte normale en ascii et vis versa
    Par koKoTis dans le forum VBScript
    Réponses: 22
    Dernier message: 14/08/2006, 04h18
  3. Tableaux contre vecteurs ou vis versa !
    Par Claude URBAN dans le forum C++
    Réponses: 15
    Dernier message: 13/08/2006, 21h13
  4. Conversion anglais-francais et vis-versa
    Par lazzeroni dans le forum BIRT
    Réponses: 43
    Dernier message: 04/04/2006, 18h13
  5. C, C++ , Heure UTC -> local et vis versa
    Par fxp17 dans le forum Linux
    Réponses: 2
    Dernier message: 22/11/2005, 11h23

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