Format binaire décimal mixte vs IEEE754

Dans la rubrique précédente, nous avons examiné un nouveau format pour représenter les nombres décimaux à virgule flottante, que nous avons appelé format décimal-binaire mixte (SDDF).

Ce format vous permet d'effectuer des calculs arithmĂ©tiques sur un ordinateur sans utiliser BCD avec la mĂȘme prĂ©cision que si les calculs Ă©taient effectuĂ©s manuellement.
Rappelons qu'un format mixte décimal-binaire (SDDF) est un format de représentation de code binaire pour les nombres décimaux à virgule flottante, dans lequel la mantisse entiÚre est l'équivalent binaire de sa valeur décimale, et l'exposant est l'équivalent binaire de la puissance de 10. Le nombre réel dans SDF est représenté comme

F=SM210e


oĂč M2et e sont des entiers binaires. L'Ă©quivalent binaire d'un nombre dĂ©cimal est le code binaire de ce nombre dĂ©cimal dans le format sĂ©lectionnĂ©. L'Ă©quivalent dĂ©cimal d'un nombre binaire est le code dĂ©cimal de ce nombre binaire.

Comparons les propriĂ©tĂ©s de base des nombres Ă  virgule flottante, qui sont prĂ©sentĂ©es dans la norme IEEE754 et SDDF. Pour plus de simplicitĂ©, pensez Ă  un mot machine 16 bits. Il s'agit du format dit demi-prĂ©cision . Les rĂ©sultats de la comparaison peuvent facilement ĂȘtre mis Ă  l'Ă©chelle dans le cas d'un format d'Ă©change simple et double prĂ©cision.

Nous divisons le mot binaire 16 bits dans les champs suivants: S, e, m. OĂč est le chiffre S du signe du nombre, e - 5 bits de l'exposant dĂ©placĂ©, m - 10 bits de l'Ă©quivalent binaire de la mantisse dĂ©cimale du nombre. La valeur binaire maximale de l'exposant de dĂ©calage enregistrĂ©e dans le registre Ă  5 bits sera Ă©gale Ă  emax = 11111, ou sous forme dĂ©cimale emax = 31. Le dĂ©calage dans ce cas est de 15.

Alors

1 . La mantisse numérique compactée dans IEEE754 contient la partie fractionnaire de la mantisse numérique.

Le nombre de mantisses dans SDDF est un entier binaire.

2 . La mantisse IEEE normalisĂ©e sous la forme dĂ©compressĂ©e ressemble Ă  1.xxxxxxxxxx. OĂč x est un chiffre binaire.

La mantisse Ă©tant normalisĂ©e, toute sa partie sous forme dĂ©ballĂ©e est toujours Ă©gale Ă  1. Cette unitĂ© ne peut pas ĂȘtre stockĂ©e dans la mĂ©moire de la machine. Ainsi, sous la forme dĂ©compressĂ©e, en tenant compte de l'unitĂ© virtuelle, la mantisse aura 11 bits.

La mantisse normalisĂ©e dans le SDDF est un entier binaire Ă©gal Ă  l'Ă©quivalent du nombre dĂ©cimal, qui dans notre cas est reprĂ©sentĂ© par trois chiffres: UXX. OĂč U est un chiffre dĂ©cimal diffĂ©rent de zĂ©ro. X est n'importe quel chiffre dĂ©cimal.

Un nombre dĂ©cimal maximum de 1023 peut ĂȘtre reprĂ©sentĂ© sur 10 bits de la mantisse. Tous les entiers infĂ©rieurs Ă  1023 peuvent ĂȘtre garantis reprĂ©sentĂ©s par 10 bits. Par consĂ©quent, tous les nombres dĂ©cimaux avec une mantisse ≀ 999 peuvent ĂȘtre reprĂ©sentĂ©s exactement par 10 bits de la mantisse.

3 . Dans IEEE754, la mantisse binaire normalisée maximale est Mmax = 1.1111111111 = 1.9990234375

Le nombre garanti de chiffres valides pouvant ĂȘtre reprĂ©sentĂ©s par une mantisse binaire de 11 bits est de 3 .

La mantisse décimale normalisée maximale dans SDDF est Mmax = 999 ou Mmax binaire = 1 111 100 111. L'équivalent décimal de la mantisse se compose de 3 chiffres décimaux. Par conséquent, la mantisse à trois chiffres de notre exemple est représentée avec précision dans SDDF 3 en chiffres décimaux significatifs.

4 . Dans IEEE754, la valeur minimale de mantisse normalisée, avec emin = 0, sera: Mmin = 1,0

La mantisse normalisée minimale dans SDDF, à emin = 0, est égale au nombre décimal Mmin = 100. Ou sous forme binaire Mmin = 0001100100.

5 . Le nombre dĂ©cimal positif maximum qui peut ĂȘtre Ă©crit au format IEEE754 avec un exposant biaisĂ© sera

Fmax = 2 ^ emax * Mmax = 2 ^ 31 * 1.9990234375 = 4292870144 = 4,292870144 * 10 ^ 9. Cependant, dans la norme, le nombre maximal est le nombre Fmax = 2 ^ emax = 2 ^ 31 = 4294967296 = 4,294967296 * 10 ^ 8. Les nombres> 2 ^ 31 sont considérés comme égaux plus l'infini.

Le nombre dĂ©cimal positif maximum qui peut ĂȘtre Ă©crit avec prĂ©cision au format SDDF avec un exposant biaisĂ© sera

Fmax = 10 ^ emax * Mmax = 10 ^ 31 * 999 = 9,99 * 10 ^ 33

6 . La plage des nombres normalisĂ©s approximatifs qui peuvent ĂȘtre reprĂ©sentĂ©s au format IEEE sera

Fmax / Fmin = 2 ^ 31 = 4294967296 = 4,294967296 * 10 ^ 8

La plage de nombres exacts qui peuvent ĂȘtre reprĂ©sentĂ©s au format SDDF sera Ă©gale Ă 
Fmax / Fmin = 9,99 * 10 ^ 31

7 . L'étape de modification du nombre binaire dans IEEE avec un exposant de décalage (emin = 0) est:
h = 0,000000000001 = 2 ^ -10 = 0,0009765625

L'étape de modification du nombre décimal dans le SDDF avec un exposant décalé (emin = 0) est:
h = 00001100100 = 100

8 . Dans IEEE754, avec un exposant biaisé, si e = 0, alors tous les nombres <1,0 sont sous-normaux. Plus le nombre sous-normal est petit, moins il représente avec précision son équivalent décimal. Des algorithmes spéciaux sont nécessaires pour coder les nombres sous-normaux dans un format d'échange, décodage à partir d'un format d'échange, ainsi que des piÚges spéciaux pour déterminer les nombres sous-normaux pendant les opérations arithmétiques.

Il n'y a pas de nombres sous-normaux dans SDDF. Tous les nombres sont représentés avec une précision, dans notre cas, jusqu'à 3 chiffres significatifs.

9 . Avec un exposant non biaisĂ©, le nombre dĂ©cimal positif normalisĂ© maximum qui peut ĂȘtre Ă©crit au format IEEE754 sera
Fmax = 2 ^ emax * Mmax = 2 ^ 15 * 1,9990234375 = 65504. Cependant, dans la norme, le nombre maximum est le nombre Fmax = 2 ^ emax = 2 ^ 15 = 32768. Les nombres> 32768 sont considérés comme égaux plus l'infini.

Avec un exposant non biaisĂ©, le nombre dĂ©cimal positif maximum qui peut ĂȘtre Ă©crit dans le SDDF sera Ă©gal Ă 

Fmax = 10 ^ emax * Mmax = 999 * 10 ^ 15 = 9,99 * 10 ^ 17

10 . Avec un exposant non biaisé, le nombre décimal positif normalisé minimum au format IEEE754 sera Fmin = 1,0 * 2 ^ -15 =
3.0517578125 * 10 ^ -5.

Avec un exposant non biaisĂ©, le nombre dĂ©cimal positif normalisĂ© minimum qui peut ĂȘtre Ă©crit au format SDDF sera Fmin = 100 * 10 ^ -15 = 10 ^ -13

11 . Avec un exposant non biaisé, le pas décimal équivalent binaire minimum dans IEEE est:

h = 0,000000000001 * 2 ^ -15 = 2 ^ -25 = 3,0517578125 * 10 ^ -5

Avec un exposant non biaisé, le pas minimum dans le SDDF coïncide avec le nombre minimum et est égal à:

h = 001100100 * 10 ^ -15 = 10 ^ -13

12 . Dans IEEE754, la fonction de la dĂ©pendance de la valeur de l'Ă©quivalent dĂ©cimal du nombre Fd sur sa valeur binaire n'est pas uniforme, car pour changer de 1 le chiffre le moins significatif de la mantisse dĂ©cimale du nombre, en rĂšgle gĂ©nĂ©rale, la somme de plusieurs h Ă©gale Ă  la machine Ɛ est nĂ©cessaire.
Ainsi, par exemple, si e = 0, pour Fd1 = 1.0 = 1.0000000000 et Fd2 = 1.1≈1.0001100110, nous aurons
Fd2- Fd1 = 1.0001100110 -1.0000000000 = 0.0001100110 = 0.099609375
0,0001100110 / h = 0,0001100110 / 0,0000000001 = 1100110 = 102 = Ɛ

Dans SDDF, la fonction de la dĂ©pendance de la valeur de l'Ă©quivalent dĂ©cimal du nombre Fd sur sa valeur binaire est uniforme. Tout changement de h de l'Ă©quivalent binaire de la mantisse du nombre dĂ©cimal entraĂźne un changement du 1 bit le moins significatif de l'Ă©quivalent dĂ©cimal du nombre. Ici machine Ɛ = 1. Vraiment.

Si e = 0,
Fd1 = 100 = 0001100100
Fd2 = 200 = 0011001000
Fd2- Fd1 = 0011001000-0001100100 = 0001100100 = 100 = h

En conclusion, nous présentons les principales caractéristiques de la représentation des nombres réels dans la norme IEEE754 et SDDF pour le format d'échange, composé de 32 bits (simple précision dans la norme IEEE754).

Pour IEEE754, les bits de mot machine simple précision sont alloués en tant que S - 1 bit du code de signe, e - 8 bits de l'exposant biaisé, m - 23 bits de mantisse explicites. Déballé, m = 24.

Pour IEEE754:
Le coefficient de déplacement exponentiel est 127 emax = 127. L'ordre sans biais du plus petit nombre normalisé avec M = 1,0 est p = e-127 + 1 = -126. Les nombres <2 ^ -126 sont considérés comme inférieurs à la normale.

Le nombre normalisé minimum est Fmin = 1,0 * 2 ^ -126 = 1,1754943508222875079687365372222e-38

Le nombre normalisé maximum
Fmax = 2 ^ 127 = 1,7014118346046923173168730371588e + 38

Les nombres qui dépassent 2 ^ 127 sont considérés comme l'infini positif.

Pour SDDF, les chiffres du mot machine sont répartis comme suit: S - 1 chiffre, e - 7 bits, m - 24 bits. Le coefficient de déplacement exponentiel est de 63. Alors

emax = 64
Mmax = 9999999
Fmax = 9999999 * 10 ^ 64 = 9,999999 * 10 ^ 70
Fmin = 1 000 000 * 10 ^ -63 = 10 ^ -57

La précision de la représentation des nombres décimaux réels est de 7 chiffres décimaux significatifs.

Source: https://habr.com/ru/post/fr414117/


All Articles