unsigned__int64 difference;
difference=(64*33554432);
printf ("size %I64u \n", difference);
difference=(63*33554432);
printf ("size %I64u \n", difference);
le premier # est ridiculement grand. Le deuxième nombre est la bonne réponse. Comment le passage de 62 à 63 provoque-t-il un tel changement?Comportement inattendu de unsigned_int64;
La première valeur est 18446744071562067968 La seconde valeur est 2113929216
Désolé les valeurs étaient 64 et 63, pas 63 et 62.
Pourriez-vous ajouter les résultats que vous voyez? Pourriez-vous également poster votre code * réel *? (Cela ne peut pas être le cas, car il n'y a pas de différence3). –
Oups, Le code est très simple .. Je veux dire évidemment différence pas différence3 désolé – Jake
C++ n'a pas 'unsigned__int64'. Vous utilisez une extension spécifique à l'implémentation ou une bibliothèque. Énoncez votre plateforme. –