OK, je suis en train d'imprimer la version décimale/hexadécimale d'un relativement grand unsigned long long
et les résultats que je suis en train sont tout à fait bizarre ...Unsigned Long Long - Sortie bizarre
Le code:
unsigned long long a = 1llu<<63;
printf("decimal = %llu\n",a);
printf("hexadecimal = %llx\n",a);
La sortie:
decimal = 9223372036854775808
hexadecimal = 8000000000000000
Maintenant, voici ce que:
- La sortie hexadécimal est correcte.
- La sortie décimale est pas (devrait être
9223372036854780000
)
Pourquoi ça se passe? Qu'est-ce que je fais mal???
2^63 est ce qu'il imprime. Je ne vois pas de problème ici. – chris
Copie possible? Intéressant cependant: http://stackoverflow.com/questions/2844/how-do-you-printf-an-unsigned-long-long-int – abelito
@chris Vraiment ??? Je ne pense pas qu'il correspond même à un nombre entier de 64 bits, n'est-ce pas? Et si oui, pourquoi? –