Bonjour,
j'ai décidément un problème avec ca.
J'ai des chaine hexadécimal qui code variablement des entiers signés ou non.
Pour obtenir le nombre j'effectue donc :
Obtenant des résultat étrange, je fais quelques tests.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 long l = Long.parseLong(maChaine, 16);
Je prend la valeur Long.MaxValue que je transforme via la fonction Long.toHexaString(long) en une chaine hexa. J'obtiens 7fffffffffffffff.
Je re convertie cette chaine en long via ma première fonction, et obtiens bien la valeur initiale.
Je teste cette fois avec l'inverse, c'est à dire Long.MinValue, et obtiens la chaine hexa : 8000000000000000.
Par contre, si je veux transformer cette chaine hexa en un long, alors une NumberFormatException est remontée.
Donc je ne comprend pas trop comment tout ca marche
Partager