Re: double et entiers 64 bits non signés
James Kanze a écrit :
> On Feb 19, 6:18 pm, JBB <nos...@nospam.com> wrote:
>> voici un code compilé VisualStudio2005, windows XP
>
>> double f = 1e100;
>> unsigned __int64 y = f;
>
>> dans y je trouve : 0x8000000000000000
>> alors que je m'attendais plutot à 0xFFFFFFFFFFFFFFFF
>
>> c'est normal? c'est un bug?
>
> Le code a un comportement indéfini. C-à-d que n'importe ce que
> fait le compilateur est correct. (À vrai dire, je me serais
> attendu à un SIGFPE, ou quelque chose du genre.)
>
> --
> James Kanze (GABI Software) email:james.kanze@gmail.com
> Conseils en informatique orientée objet/
> Beratung in objektorientierter Datenverarbeitung
> 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
en fait je cherchait un type flottant qui englobe le type unsigned __int64 tout en gardant la précision au niveau de l'entier.
je me doute bien que ça marche pas avec 'double' qui n'est que sur 8 octets ( tout comme __int64).
Il n'y a pas des flottants avec plus de précisions?
j'ai l'impression que 'long double' n'est pas différent de double ( sizeof(long double) = 8)
|