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

Langage Java Discussion :

nombre hexadecimal en java


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut nombre hexadecimal en java
    Bonjour,
    je veux convertir un nombre décimal en exadécimal en java et vis vers ça
    est ce que quelqu'a a une idée ?
    merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut bien distinguer le nombre et sa représentation.

    En mémoire tu n'a aucune conversion à faire car de toutes manières les nombres sont stocké en base 2...


    Ensuite ce n'est qu'une question de format d'affichage, et pour cela voir DecimalFormat, Format, ou les méthodes static des wrapper (Integer, Long, etc...)


    a++

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    salut,

    j'ai un nombre en exadecimal de type string (exemple 0F20) et je compte l'incrémenté pour avoir le nombre suivant.
    est ce que tu as une idée faire ?

    merci

  4. #4
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    pourquoi de type string ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int n = 0x0F20;
    System.out.println(n);
    n++;
    System.out.println(n);
    c'est bien ça que tu veux non ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    non
    dans la base de données il est declaré comme un string. donc je recupere un string puis aprés il faut l'incrémenté.
    exemple String num = "0F21"
    si j'utilise Integer.parsInt(num) pour le convertir en un int . ça ne marche pas..
    tu as compris mon pb ?

  6. #6
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Integer.parseInt("0x"+num);
    et ceci ?

    edit: http://java.developpez.com/faq/java/...aine_en_nombre

    Pour convertir une chaîne hexadécimale en entier il faut utiliser la méthode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Integer.parseInt(hexa, 16);
    Le 16 spécifie la base à utiliser pour parser l'entier.

  7. #7
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String hexa = "0F20";
    int n = Integer.parseInt(hexa, 16);
    n++;
    String newHexa = Integer.toHexString(n).toUpperCase(); // donne F21
    Si tu veux un 0 en tête, il faudrait connaître le nombre de digits max de la représentation hexa utilisée.

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par air75 Voir le message
    dans la base de données il est declaré comme un string.
    Pourquoi utiliser un String pour stocker un nombre !?

    Du coup il va falloir se taper des conversion int <-> String...


    Citation Envoyé par air75 Voir le message
    si j'utilise Integer.parsInt(num) pour le convertir en un int . ça ne marche pas..
    La réponse est dans la doc : parseInt(String, int)

    Citation Envoyé par herve91 Voir le message
    Si tu veux un 0 en tête, il faudrait connaître le nombre de digits max de la représentation hexa utilisée.
    A partir de Java 5 je pense qu'il est plus simple d'utiliser le Formatter (style printf du C) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String newHexa = String.format("%04x", n); // donne 0f21
     
    String newHexa = String.format("%04X", n); // donne 0F21
    a++

  9. #9
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    A partir de Java 5 je pense qu'il est plus simple d'utiliser le Formatter (style printf du C)
    J'en conviens, je ne maitrise pas l'ensemble de l'API Java 5

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par herve91 Voir le message
    J'en conviens, je ne maitrise pas l'ensemble de l'API Java 5
    Mais comme je viens du C à l'origine l'apparition d'une syntaxe printf-like a tout de suite attiré mon attention

    a++

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    salut
    merci ça marche
    par contre est ce que il y a une fonction qui permet de garder un certain format, car dans mon cas la longeur du num est tjs egal a 4.
    donc au lieu d'avoir F22 IL faut avoir 0f22
    merci

  12. #12
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Je vois que nous avons des origines communes
    et avant ou en parallèle avec C ... Pascal, LTR3 et Ada

  13. #13
    Membre habitué Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 151
    Points
    151
    Par défaut pourquoi compliqué ce qui est simple

    dans la base de données il est declaré comme un string. donc je recupere un string puis aprés il faut l'incrémenté.
    dans la base de données déclare le comme un int, float, ou double... et la vie sera plus
    "le temps c'est le meilleur des médécins, peut être aussi le meilleur des assassins" Bernis-Francine

  14. #14
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    donc au lieu d'avoir F22 IL faut avoir 0f22
    Voir proposition d'adiGuba

  15. #15
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    ça marche
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test nombre hexadecimal
    Par francis_tom dans le forum AIX
    Réponses: 10
    Dernier message: 02/10/2009, 11h34
  2. générer un nombre alétoire avec java
    Par sky88 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 22/03/2008, 12h40
  3. nombres premiers et java
    Par marineaure dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 26/04/2006, 10h17

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