Remarques sur l'utilisation de la notation scientifique binaire pour représenter des données flottantes

// Porté de mon journal de l'espace

// 25/10/2017 22:01

 

Tout d’abord, parlons des difficultés d’aujourd’hui

        La chose dont l'enseignant a parlé, je la décrirai comme utilisant la notation scientifique binaire pour représenter des données flottantes

        Je crois que tout le monde connaît la notation scientifique du système décimal, et la formule donnée par l'enseignant est 2x × 1.y, ici il suffit de changer la position et de la remplacer par 1.y × 2x. Est-ce plus familier? Dans le système décimal, 1.y appartient à 1 à 10, et le système binaire est naturellement un à deux.

        Après avoir compris la signification de cette formule, l'étape suivante consiste à l'exprimer avec un type de données float, qui est le formulaire stocké dans l'ordinateur.

        Insérez une image ici

        Tout le monde sait que le type de données float occupe 4 octets, soit 32 bits. Le double est de 64 bits (8 octets), donc la précision sera plus élevée. Le premier des 32 bits du type de données float est le signe, 1 est négatif et 0 est positif. Les 8 derniers bits sont les bits d'exposant (code de commande), qui est l'expression binaire de x (complément à 8 bits). Enfin, il y a la décimale (mantisse), qui est l'expression binaire de y (complétée à 23 chiffres). Les x et y dans les données doubles sont respectivement de 11 et 52 bits. En fait, si vous ne regardez pas le bit de signe et n’inversez pas x et y, c’est la forme familière de la notation scientifique.

        Nous donnons une donnée en virgule flottante: 129,96 (> 1)

        Commencez par séparer la plus grande puissance de 2, qui est 128, la 7e puissance de 2, et x = 7, qui est 00000111. Comment le comprendre, vous pouvez le considérer comme prenant la partie entière du nombre d'origine en binaire, puis prenant le bit le plus élevé.

        Le 1,96 restant est de 2 à la 7e puissance multipliée par 0.y.

        Retirez d'abord 1. Ici, le y est converti en binaire. La méthode spécifique est mentionnée dans la classe de l'enseignant, qui consiste à multiplier par 2 puis on prend 1, et aucun 1 ne prend 0. Le nombre de bits pris est de 23-x. Le processus spécifique ne sera pas répété, le résultat final est 1.11110101 ... (23 chiffres après la virgule décimale). Enfin, déplacez le point décimal vers la gauche en fonction de la puissance de 2 retirée plus tôt. L'analogie avec la notation scientifique décimale est facile à comprendre: si l'exposant de 10 est quelques-uns, il est décalé vers la gauche.

        Mais le x ici n'est pas le x final, et 128 doit être ajouté. Je pense personnellement que c'est pour éviter que le nombre original ne soit inférieur à 1 et que x soit négatif (c'est-à-dire pour s'assurer que x est positif).

        Le nombre d'origine> 0, le bit de signe est 0.

        Le résultat final est: 0 10000111 00000011111010111000010

        Nous donnons un exemple: 0,073 (<1)

        Ici x est un nombre négatif, un par un: 2 à la puissance -1, 2 à -2 ... Il y en a 2 à la puissance 4, 0,0625. Les 0,0105 restants, de la même méthode, se multiplient par deux et se multiplient une fois. Ici x vaut -4, nous prenons 23 + 4 = 27 bits. Le résultat final est .000000010101100 ... nous déplaçons la virgule décimale de 4 places vers la droite pour obtenir .00010101100 ... (devrait être de 23 places).

        Le signe est 0 et x = -4 + 128 = 124 est 01111100.

        Le résultat final: 0 01111100 00010101100000010000010

        Enfin, j'ai deux liens, les étudiants intéressés peuvent jeter un œil:
        1. Le code original, le code complémentaire, l'explication détaillée du code inverse
         http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html  ;

        2. La méthode de stockage binaire et la conversion des flottants
        http://blog.csdn.net/rayxp/article/details/40855665 Si vous
        avez des questions, laissez un message dans la zone des commentaires pour échanger et apprendre ensemble. Ce qui précède ne sont que quelques résumés immatures et hypothèses d'un étudiant de première année. 

Je suppose que tu aimes

Origine blog.csdn.net/qq_39586345/article/details/79580948
conseillé
Classement