435 Shares 6886 views

Qu'est-ce qu'un nombre à virgule flottante?

La forme de représentation des nombres réels (ou réels), où ils sont stockés en tant que mantisse et exposant, sont des nombres à virgule flottante (peut-être un point, comme c'est le cas dans les pays anglophones). Malgré cela, le nombre est fourni avec une précision relative fixe et un absolu variable. La représentation qui est utilisée le plus souvent est approuvée par la norme IEEE 754. Les opérations mathématiques, où les nombres en virgule flottante sont utilisés, sont implémentés dans des systèmes informatiques – matériels et logiciels.

Point ou virgule

Dans la liste détaillée du séparateur décimal, on indique ces pays anglophones et anglophones, où, dans le nombre d'enregistrements, la partie fractionnée est séparée de la partie entière par un point et, par conséquent, la terminologie de ces pays s'appelle virgule flottante – «point flottant». Dans la Fédération de Russie, la partie fractionnaire de l'ensemble est traditionnellement séparée par une virgule, c'est pourquoi le terme historiquement reconnu «nombre à virgule flottante» désigne cette notion. Néanmoins, aujourd'hui, tant dans la documentation technique que dans la littérature russe, ces deux variantes sont tout à fait acceptables.

Le terme «nombres à virgule flottante» provient du fait que la représentation positionnelle d'un nombre représente une virgule (ordinaire décimale ou binaire – ordinateur) qui peut correspondre n'importe où parmi les nombres de la chaîne. Cette fonctionnalité doit être discutée séparément. Cela signifie que la représentation des nombres à virgule flottante peut être considérée comme une implémentation informatique d'une entrée de numéro exponentielle. L'avantage d'utiliser une telle représentation sur la représentation d'un format avec une virgule et des nombres entiers fixe est que la gamme de valeurs augmente considérablement, tandis que la précision relative reste inchangée.

Exemple:

Si la virgule dans le numéro est fixée, vous pouvez l'écrire dans un seul format. Par exemple, six bits d'entier en nombre et deux bits en partie fractionnaire sont donnés. Cela ne se fait que de cette façon: 123456,78. Le format des nombres à virgule flottante offre une marge d'expression complète. Par exemple, les mêmes huit bits sont donnés. Les variantes de l'enregistrement peuvent être aussi longtemps que le programmeur ne doit pas créer un champ additionnel à deux chiffres, où il écrira les exposants, qui sont habituellement 10, de 0 à 16, et le nombre total sera de dix: 8 + 2.

Quelques options pour écrire qui permettent le format des nombres à virgule flottante: 12345678000000000000; 0,0000012345678; 123,45678; 1,2345678 et ainsi de suite. Ce format a même une unité de mesure de vitesse! Au contraire, la vitesse du système informatique, qui corrige la vitesse avec laquelle l'ordinateur effectue des opérations, où il y a une représentation de nombres à virgule flottante. Ceci est mesuré en termes de FLOPS (opérations à virgule flottante par seconde, qui se traduit par le nombre d'opérations par seconde avec des nombres à virgule flottante). Cette unité est la principale pour mesurer la vitesse du système informatique.

Structure

Pour écrire un numéro dans un format à virgule flottante, vous avez besoin de la manière suivante, en observant la séquence des pièces requises, puisque cette entrée est exponentielle, où les nombres réels sont représentés sous forme de mantisse et d'ordre. Ceci est nécessaire pour représenter des nombres trop volumineux et trop petits, il est beaucoup plus pratique de les lire. Pièces obligatoires: le numéro enregistré (N), la mantisse (M), le signe de l'ordre (p) et l'ordre (n). Les deux derniers caractères forment une caractéristique du nombre. Par conséquent, N = M. N p . Donc, les chiffres sont écrits avec une virgule flottante. Les exemples seront variés.

1. Il est nécessaire d'écrire le numéro un million afin de ne pas se confondre dans les zéros. 1000000 est une entrée normale, une arithmétique. Un ordinateur ressemble à ceci: 1.0 . 10 6 . C'est-à-dire dix au sixième degré – trois caractères, qui correspondent à six zéros. Ainsi, la représentation des nombres à point fixe et à virgule flottante se produit, où vous pouvez détecter immédiatement les différences d'orthographe.

2. Et un nombre tellement difficile que 1435000000 (un milliard quatre cent trente-cinq mille) peut également être écrit: 1 435 . 10 9 seulement. De même, vous pouvez écrire n'importe quel numéro avec un signe moins. C'est là que les nombres à point fixe et à virgule flottante diffèrent les uns des autres.

Mais ce sont de gros nombres, comment traiter les petits? Oui, trop facile.

3. Par exemple, comment désigner un millionième? 0.000001 = 1.0 . 10 -6 . Facilite considérablement l'écriture du numéro et sa lecture.

4. Et plus difficile? Cinq cent quarante-six milliards: 0,000000546 = 546 . 10 -9 . Ici. " La gamme de représentation des nombres à virgule flottante est très large.

Forme

La forme d'un nombre peut être normale ou normalisée. Normal – observe toujours la précision des nombres à virgule flottante. Il convient de noter que la mantisse sous cette forme, sans tenir compte du signe, est à mi-chemin de l'intervalle: 0 1, donc 0 ⩽ a <1. Le nombre ne perd pas sa précision sous une forme normale. L'inconvénient de la forme normale d'un nombre est que de nombreux nombres peuvent être écrits de différentes façons, c'est-à-dire ambigu. Un exemple d'enregistrement différent du même nombre: 0.0001 = 0, 000001 . 10 2 = 0,00001 . 10 1 = 0,0001 . 10 0 = 0,001 . 10 -1 = 0,01 . 10 -2 et vous pouvez donc encore beaucoup. C'est pourquoi, dans l'informatique, on utilise une forme normale d'enregistrement, où la mantisse des nombres décimés prend une valeur d'un (inclus) et donc jusqu'à dix (non inclus), et de la même manière, la mantisse des nombres binaires prend une valeur de un (inclus) à deux (pas Inclusive).

Par conséquent, 1 ⩽ a <10. Ce sont des nombres à virgule flottante binaires , et cette forme d'écriture résout n'importe quel nombre (sauf zéro) uniquement. Mais il y a aussi un inconvénient – l'impossibilité sous cette forme est nulle. Par conséquent, l'informatique fournit l'utilisation du nombre 0 d'une caractéristique spéciale (bit). La partie entière du nombre (chiffre le plus élevé) de la mantisse dans un nombre binaire sauf zéro dans la forme normalisée est 1 (unité implicite). Un tel enregistrement est utilisé par la norme IEEE 754. Les systèmes de numérotation, où la base est supérieure à deux (système ternaire, quaternaire et autres), cette propriété n'a pas été acquise.

Numéros réels

Les nombres à virgule flottante à point flottant sont généralement la seule façon, car ce n'est pas le seul, mais le moyen très pratique de représenter un nombre réel, pour ainsi dire, un compromis entre une gamme de valeurs et de précision. Ceci est une analogique d'un enregistrement exponentiel qui vient d'être exécuté dans l'ordinateur. Un nombre à virgule flottante est un ensemble de bits individuels séparés par un signe, un ordre (exposant) et une mantis (mantis). Le format IEEE 754 le plus commun est un nombre à virgule flottante en tant que jeu de bits qui encode une partie de la mantisse, l'autre partie est une puissance et un seul signe indique le signe de numéro: zéro est si c'est positif, l'un est si le nombre est négatif. L'ordre entier est écrit en entier (code avec un décalage), et la mantisse est en forme normalisée, sa partie fractionnaire est dans le système binaire.

Chaque caractère est un bit, ce qui indique un signe pour un nombre à virgule flottante complète. La mantisse et l'ordre sont des nombres entiers, ils sont combinés avec un signe et font la représentation d'un nombre à virgule flottante. Un ordre peut être appelé un exposant ou un exposant. Tous les nombres réels ne peuvent être représentés dans l'ordinateur dans leur sens exact, tandis que le reste est représenté par des valeurs approximatives. Une variante beaucoup plus simple est de représenter un nombre réel avec un point fixe, où les pièces réelles et entières sont stockées séparément. Très probablement, de telle sorte que la partie entière reçoit toujours des bits X et des bits fractionnés – Y. Mais les architectures de processeur ne connaissent pas cette méthode et, par conséquent, la préférence est donnée au nombre à virgule flottante.

Addition

L'ajout de nombres en virgule flottante est assez simple. En relation avec la norme IEEE 754, la précision unique d'un nombre a un nombre énorme de bits, il vaut mieux aller directement aux exemples et il vaut mieux prendre la plus petite représentation d'un nombre à virgule flottante. Par exemple, deux nombres – X et Y.

Variable Signe Exposant Mantissa
X 0 1001 110
Y 0 0111 000

Les étapes sont les suivantes:

A) Les nombres doivent être présentés sous une forme normalisée. Évidemment, une unité cachée apparaît. X = 1,110 . 2 2 et Y = 1 000 . 2 0 .

B) Le processus d'addition ne peut être poursuivi que par l'équation des exposants et, pour cela, il est nécessaire de réécrire la valeur de Y. Il correspondra à la valeur du nombre normalisé, bien qu'il soit en fait dénormalisé.

Calculez la différence des exposants du degré 2 – 0 = 2. Déplacez maintenant la mantisse pour compenser ces changements, c'est-à-dire ajouter 2 à l'exposant du second résumé, en changeant ainsi la virgule de l'unité cachée en deux points vers la gauche. Cela donne 0.0100 . 2 2 . Ce sera l'équivalent de la valeur précédente de Y, c'est-à-dire déjà Y '.

C) Maintenant, nous devons plier les mantises du nombre X et le Y ajusté.

1,110 + 0,01 = 10,0

L'exposant est toujours égal à l'indicateur présenté X, qui est égal à 2.

D) Le montant reçu dans l'étape précédente a déplacé l'unité de normalisation, donc vous devez déplacer l'exposant et répéter la sommation. 10.0 avec deux bits à gauche de la virgule, maintenant le nombre doit être normalisé, c'est-à-dire déplacer la virgule vers la gauche d'un point, et augmenter l'exposition par 1. Cela se révèle être de 1000 . 2 3 .

E) Il est temps de convertir le nombre à virgule flottante en un système à un seul octet.

Montant Signe Exposant Mantissa
X + Y 0 1010 000

Conclusion

Comme vous pouvez le constater, ajouter de tels nombres n'est pas trop difficile, rien de ce que la virgule flotte. Si, bien sûr, nous ne considérons pas la réduction d'un nombre avec un plus petit exposant à un nombre plus grand (dans l'exemple donné qu'il était Y à X), et aussi la restauration du statu quo, c'est-à-dire la délivrance d'une compensation – le mouvement de la virgule à gauche de la mantisse. Lorsque l'ajout a déjà été réalisé, il est très possible et une autre difficulté: la renormalisation et la troncature des bits, si leur nombre ne correspond pas au format du numéro pour le représenter.

Multiplication

Le système binaire offre deux façons de multiplier les nombres à virgule flottante. Cette tâche peut être effectuée en multipliant, qui commence par les chiffres de l'ordre inférieur et qui commence par les chiffres les plus élevés du multiplicateur. Les deux cas contiennent un certain nombre d'opérations, en ajoutant successivement des travaux privés. Ces opérations d'addition sont contrôlées par les bits du multiplicateur. Par conséquent, si l'un de l'un des chiffres du multiplicateur, la somme des produits partiels augmente multipliée par le décalage correspondant. Et si le zéro est multiplié dans le multiplicateur, le multiplicande n'est pas ajouté.

Si la multiplication de seulement deux nombres est faite, les chiffres du produit dans sa quantité ne peuvent pas dépasser le nombre de chiffres contenus dans les facteurs plus de deux fois, et pour de gros nombres, cela est très important. Si plusieurs nombres sont multipliés, le produit risque de ne pas être placé sur l'écran. Par conséquent, le nombre de chiffres de n'importe quel automate numérique est complètement fini, ce qui nous oblige à nous limiter, au maximum, au nombre de chiffres des totalisateurs. Et si le nombre de chiffres est limité, une erreur entre inévitablement dans le travail. Si le volume des calculs est important, les erreurs sont superposées et, par conséquent, l'erreur totale augmente considérablement. Ici, la seule issue est d'arrondir les résultats de multiplication, puis l'erreur du produit se fera alternativement. Lorsque l'opération de multiplication est effectuée, il est possible d'aller au-delà de la grille des chiffres, mais seulement du côté de l'ordre inférieur, car la restriction imposée aux nombres représentés sous la forme du point-virgule est corrigée.

Quelques explications

Il vaut mieux commencer tout d'abord. La façon la plus courante de représenter un nombre est comme une chaîne de chiffres comme un nombre entier, où la virgule est définie à la fin. Cette chaîne peut être de toute longueur, et la virgule est dans l'endroit le plus nécessaire, en séparant le nombre entier de la partie fractionnaire de celle-ci. Le format d'une représentation à point fixe d'un système place nécessairement certaines conditions pour l'emplacement de la virgule. La notation exponentielle utilise la représentation normalisée normalisée des nombres. Ceci est aqn { displaystyle aq ^ {n}} aq n . Ici, un motif et une dentelle s'appellent une mantisse. À peu près cela a été dit que 0 ⩽ a <q. Ensuite, tout devrait déjà être clair: n {/ displaystyle n} n est un nombre entier, un exposant et q {/ displaystyle q} q est également un nombre entier, qui est à la base du système de nombres donné (et dans la lettre il est habituellement 10). La mantisse laissera une virgule après le premier chiffre, qui n'est pas nul, mais d'autres informations sont enregistrées sur la valeur réelle du nombre.

Le nombre à virgule flottante est très similaire à la notation standard standard pour les nombres, seul l'exposant et la mantisse sont enregistrés séparément. Ce dernier est également dans le format normalisé – avec une virgule fixe, qui orne le premier chiffre significatif. La simple virgule flottante est utilisée principalement dans l'ordinateur, c'est-à-dire dans la représentation électronique, où le système n'est pas décimaux, mais binaire, où même la mantisse est dénormalisée par la virgule, maintenant elle est avant le premier chiffre, puis avant et pas après, où la partie entière En principe, il ne peut pas l'être. Par exemple, notre système décimal natif donnera ses neuf au système binaire pour une utilisation temporaire. Et elle l'écrira avec une mantisse à virgule flottante comme celle-ci: +1001000 … 0 et +0 … 0100. Mais le système décimal ne peut pas produire des calculs aussi complexes que possible en binaire, en utilisant une forme à virgule flottante.

Arithmétique longue

Dans les ordinateurs électroniques, il existe des logiciels intégrés, où la quantité de mémoire allouée pour la mantisse et l'exposant est programmée, limitée uniquement à la taille de la mémoire de l'ordinateur. Il s'agit de la durée de l'arithmétique, c'est-à-dire des opérations simples sur les nombres effectués par un ordinateur. Ce sont tous les mêmes: soustraction et addition, division et multiplication, fonctions élémentaires et érection à la racine. Mais seuls les nombres sont complètement différents, leur profondeur de bits peut considérablement dépasser la longueur du mot de l'ordinateur. La mise en œuvre de telles opérations n'est pas du matériel, mais des logiciels, mais le matériel de base est largement utilisé pour travailler avec des commandes beaucoup plus bas. Il existe également une arithmétique, où la longueur des nombres est limitée uniquement à la quantité de mémoire – arithmétique arbitraire de précision. Une longue arithmétique est utilisée dans de nombreux domaines.

1. Pour compiler le code (processeurs, microcontrôleurs à faible bit – 10 bits et registres binaire 8 bits, il est évident que cela ne suffit pas pour traiter l'information avec Analog-to-digital et, par conséquent, ne pas faire sans une longue arithmétique.

2. Il est également une arithmétique à long est utilisé pour la cryptographie, où il est nécessaire d'assurer l'exactitude du résultat de la multiplication ou exponentiation à 10309. arithmétique entier est utilisé modulo m – un grand nombre naturel, et pas nécessairement simple.

3. Logiciels pour les financiers et les mathématiciens, aussi, ne sont pas sans arithmétique longue, parce que la seule façon de vérifier les résultats des calculs sur papier – avec l'aide de l'ordinateur, assurant une grande précision des chiffres. virgule flottante, ils peuvent impliquer un certain nombre de décharge à long. Mais les calculs techniques et les travaux des scientifiques exigent des calculs du programme d'intervention très souvent, car il est très difficile de rendre les données d'entrée sans faire d'erreur. ils sont généralement beaucoup plus volumineux que les résultats d'arrondi.

Battez des erreurs

Lorsqu'un certain nombre d'opérations dans lequel le point flottant, il est très difficile d'évaluer la précision des résultats. Pas encore inventé satisfaire toute la théorie mathématique qui aiderait à résoudre ce problème. Mais le nombre entier d'erreur évaluer facilement. La possibilité de se débarrasser des inexactitudes sur la surface – il suffit d'utiliser uniquement le nombre de points fixes. Par exemple, un programme financier construit sur ce principe. Cependant, il y a plus simple: le nombre de chiffres après la virgule est connue à l'avance.

D'autres applications ne se limitent pas, parce que vous ne pouvez pas travailler avec des nombres très petites ou très grandes. Alors, quand vous travaillez prend toujours en compte qu'il peut y avoir des inexactitudes, et parce que la dérivation des résultats, il est nécessaire de tour. De plus, l'arrondissement automatique est souvent un manque d'action, et donc arrondi est spécifiquement défini. Très dangereux à cet égard, l'opération de comparaison. Il y a même d'estimer le nombre d'erreurs futures est extrêmement difficile.