2008-11-27 8 views
1

Je travaille sur une calculatrice qui vous permet d'effectuer des calculs au-delà du point décimal en octal, hexadécimal, binaire et bien sûr en décimal. J'ai du mal à trouver un moyen de convertir les nombres décimaux à virgule flottante en virgule flottante hexadécimale, octale, binaire et vice versa.binaire octal binaire à virgule flottante

Le plan est de faire tous les calculs en décimal, puis convertir le résultat dans le système de numérotation approprié. Toute aide, idée ou exemple serait apprécié.

Merci!

Répondre

2

Hmm ... c'était un travail à faire en mon cours CS "weed-out" de l'université.

Les opérations pour le binaire sont décrites dans Schaum's Outline Series: Essential Computer Mathematics par Seymour Lipschutz. Pour une raison quelconque, il est encore sur ma bibliothèque 23 ans plus tard.

Comme indice, convertissez octal et hex en binaire, effectuez les opérations, convertissez en binaire.

Ou vous pouvez effectuer des opérations décimales et effectuer les conversions en octal/hex/binaire par la suite. Le processus est essentiellement le même pour tous les arithmétiques de systèmes de nombres positionnels.

1

Quel langage de programmation utilisez-vous? c'est définitivement une bonne idée de tout changer en binaire faire le calcul sur le binaire puis reconvertir. Si vous multipliez un nombre binaire (unsigneD) par 2, ti est le même qu'un Bit Shift Left (< < 1 en C), une division par 2 est identique à un Bit Shit Right (>> en C). L'addition et la soustraction sont les mêmes que celles que vous feriez à l'école primaire. N'oubliez pas que si vous lancez un flottant en tant qu'int, il le tronque int (10.5) = 10;

0

J'ai eu ce même problème il y a quelques jours. J'ai trouvé http://www.binaryconvert.com, qui vous permet de convertir entre virgule décimale, binaire, octal et hexadécimal dans l'ordre que vous voulez.