• [^] # Re: Rien de surprenant

    Posté par . En réponse au journal [Humour] vers un monde différent. Évalué à 4. Dernière modification le 19 décembre 2017 à 12:52.

    Il y a une infinité de nombre et tu voudrais tous les représenter.
    Pour augmenter ta précision tu dois augmenter le nombre de bits pour représenter tes nombres.
    Le système actuel permet d'avoir une grande étendue de nombre tout en ayant la possibilité d'avoir des chiffres après la virgule en ne prenant qu'un nombre limité de bit.

    La solution serait d'utiliser une virgule fixe soit :
    petit comparatif :

    Avec 32 bits en mode IEEE 754 je peux aller jusqu'à 1038 (https://fr.wikipedia.org/wiki/IEEE_754)
    Avec 32 bits en entier (sans virgule) : je ne vais que jusqu'à 4 milliards

    Je veux une virgule fixe, on va dire que pour nos besoins qu'on a besoin que de 3 chiffres après la virgule on aura donc 10 bits pour représenter les chiffres après la virgule.
    Tu noteras que ce n'est pas optimisé (on perd le 0,1000 à 0,1024)
    Donc 22 bits pour coder l'entier ce qui donne 222 = 4 millions et des brouettes (soit pas grand chose) avec seulement 3 chiffres après la virgule.

    L'(énorme) avantage de la mantisse+exposant c'est que le pas des nombre n'est pas linéaire : par exemple quand on est de l'ordre de 1 le nombre suivant est 1,00000012. Lorsqu'on est presque au maximum on est à ×ばつ1038 et maximum on est à ×ばつ1038.

    Parce que soyons honnête, y a très peu de cas ou différencier 4.000.000,381 de 4.000.000,379 est important voire on s'en fout de dire 4.000.000 ou 4.000.010, tout le monde va arrondir à 4 millions.

    Par contre c'est beaucoup plus intéressant de savoir différencier 0.0001 de 0.0002.

    Tout ça pour dire qu'en corrigeant ton problème avec des virgules fixe, tu t'impose également des limites.