Question

Je pense récemment sur la façon dont les mathématiques à virgule flottante fonctionne sur les ordinateurs et il est difficile pour moi de comprendre tous les détails tecnicals derrière les formules. Je besoin de comprendre les bases de l'addition, la soustraction, la multiplication, la division et le reste. Avec cela, je serai en mesure de faire des fonctions trigonométriques et formules.

Je peux deviner quelque chose à ce sujet, mais son pas très claire. Je sais que un point fixe peut être réalisée par séparation d'un nombre entier de 4 octets par un indicateur de signal, une base et une mantisse. Avec cela, nous avons un drapeau 1 bit, un 5 radix bits et une mantisse de 10 bits. Un mot de 32 bits est parfait pour une valeur en virgule flottante:)

Pour faire une addition entre deux flotteurs, je peux simplement essayer d'ajouter les deux mantisses et ajouter le report au 5 radix bits? Ceci est une façon de faire des mathématiques à virgule flottante (ou les mathématiques à virgule fixe, pour être vrai) ou je suis tout à fait tort?

Toutes les explications I formules d'utilisation de la scie, multiplications, etc. et ils ont l'air si complexe pour une chose que je pense, serait un peu plus simple. Je besoin d'une explication plus dirigée vers programmeurs débutants et moins aux mathématiciens.

Était-ce utile?

La solution

Le radix dépend de la représentation, si vous utilisez radix r = 2, vous ne pouvez jamais changer, le nombre n'a même pas de données que vous dire qui radix avoir. Je pense que vous avez tort et vous exposant moyen.

Pour ajouter deux nombres à virgule flottante, vous devez faire l'exposant égal à égal en tournant la mantisse. Un bit moyen droite exposant + 1 et un bit gauche signifie exposant -1, lorsque vous avez les numéros avec le même exposant alors vous pouvez les ajouter.

Valeur (x) = mantisse * ^ exposant radix

adding these two numbers

    101011 * 2 ^ 13
    001011 * 2 ^ 12

would be the same as adding:

    101011 * 2 ^ 13
    000101 * 2 ^ 13

Après avoir fait l'exposant égal un à l'autre, vous pouvez utiliser. Vous devez également savoir si la représentation a peu implicite, je veux dire, le bit le plus significatif doit être 1, donc généralement, comme dans la norme IEE son connu pour être là, mais il n'est pas representated, bien que son utilisé pour faire fonctionner .

Je sais que cela peut être un peu déroutant et je ne suis pas le meilleur professeur donc aucun doute que vous avez, il suffit de demander.

Autres conseils

Exécuter, ne marche pas, pour obtenir Knuth de Seminumerical algorithmes qui contient merveilleuse intuition et des algorithmes derrière et faire multiprécision arithmétique en virgule flottante.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top