Bonsoir à tous,
voilà, j'ai un souci qui me semble trivial, mais mes petits neurones n'arrivent pas à trouver la solution.
Voilà un exemple de code ou je prends un Long (64bits), je le scinde en deux Integer(32bits) et je réessaye de les rassembler ensuite pour retrouver le Long original:
Mon problème est que le résultat n'est pas celui escompté : inLong et outLong sont différents:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 long DEUX_PUISSANCE_32 = 4294967296L; long inLong = 4609628819153601335L; int big = (int)(inLong / DEUX_PUISSANCE_32); int little = (int)(inLong % DEUX_PUISSANCE_32); long outLong = ((long)big * DEUX_PUISSANCE_32) + ((long)little); System.out.println("Result of internal manipulation ("+inLong+" / "+outLong+") is "+(inLong == outLong));
J'ai certainement raté un truc que j'arrive pas à débusquer... Si vous avez une idée, merci beaucoup d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part Result of internal manipulation (4609628819153601335 / 4609628814858634039) is false![]()
Partager