Articles of ieee 754

Différence entre Double.MIN_NORMAL et Double.MIN_VALUE?

Puis-je savoir quelle est la différence entre Double.MIN_NORMAL (introduit en 1.6) et Double.MIN_VALUE ? JavaDoc de Double.MIN_NORMAL : Une constante contenant la plus petite valeur normale positive de type double , 2 -1022 JavaDoc de Double.MIN_VALUE : Une constante contenant la plus petite valeur non nulle positive du type double , 2 -1074

Qu’est-ce qui ferait que les opérateurs C / C ++ <, <= et == renvoient true si l'un des arguments est NaN?

Ma compréhension des règles de la comparaison à virgule flottante IEEE-754 est que tous les opérateurs de comparaison, à l’exception de != , Renverront false si l’un des arguments ou les deux sont NaN, tandis que l’opérateur != Retournera true. Je peux facilement reproduire ce comportement avec un simple test autonome: for (int ii = […]

En notation binary, quelle est la signification des chiffres après le sharepoint base “.”

J’ai cet exemple sur la façon de convertir un nombre de base 10 en représentation flottante IEEE 754 Number: 45.25 (base 10) = 101101.01 (base 2) Sign: 0 Normalized form N = 1.0110101 * 2^5 Exponent esp = 5 E = 5 + 127 = 132 (base 10) = 10000100 (base 2) IEEE 754: 0 […]

Portabilité de la sérialisation binary du type double / float en C ++

Le standard C ++ ne traite pas de la disposition sous-jacente des types float et double, mais uniquement de la plage de valeurs qu’ils doivent représenter. (Ceci est également vrai pour les types signés, est-ce le compliment de deux ou autre chose) Ma question est la suivante: quelles sont les techniques utilisées pour sérialiser / […]

Coercition à virgule flottante pour être déterministe dans .NET?

J’ai beaucoup lu sur le déterminisme à virgule flottante dans .NET, c’est-à-dire que le même code avec les mêmes entrées donnera les mêmes résultats sur les différentes machines. Étant donné que .NET ne dispose pas d’options telles que le fpssortingct de Java et le fp: ssortingct de MSVC, le consensus semble être qu’il n’y a […]

Utilité de la signalisation NaN?

J’ai récemment lu pas mal de choses sur l’IEEE 754 et l’architecture x87. Je pensais utiliser NaN comme “valeur manquante” dans un code de calcul numérique sur lequel je travaille, et j’espérais que l’utilisation de la signalisation NaN me permettrait de détecter une exception en virgule flottante dans les cas où je ne veux pas […]

Double vs float sur l’iPhone

Je viens d’entendre que l’iPhone ne peut pas faire double nativement, ce qui les rend beaucoup plus lent que le flotteur régulier. Est-ce vrai? Preuve? Je suis très intéressé par le problème car mon programme nécessite des calculs de haute précision et je devrai faire des compromis sur la vitesse.

Comment fonctionne cette approximation de la racine carrée flottante?

J’ai trouvé une approximation de la racine carrée plutôt étrange mais fonctionnelle pour les float s; Je ne comprends vraiment pas. Quelqu’un peut-il m’expliquer pourquoi ce code fonctionne? float sqrt(float f) { const int result = 0x1fbb4000 + (*(int*)&f >> 1); return *(float*)&result; } Je l’ai testé un peu et il sort des valeurs de […]

Toutes les valeurs entières sont-elles parfaitement représentées comme doubles?

Ma question est de savoir si toutes les valeurs entières sont garanties pour avoir une double représentation parfaite. Considérez l’exemple de code suivant qui affiche “Same”: // Example program #include #include int main() { int a = 3; int b = 4; double d_a(a); double d_b(b); double int_sum = a + b; double d_sum = […]

Les modèles de bits de NaN dépendent-ils vraiment du matériel?

Je lisais sur les valeurs NaN à virgule flottante dans la spécification du langage Java (je suis ennuyeux). Un float 32 bits a ce format de bit: seee eeee emmm mmmm mmmm mmmm mmmm mmmm s est le bit de signe, e sont les bits d’exposant et m sont les bits de mantisse. Une valeur […]