2012-03-26 22 views
-2

Ich arbeite an einem persönlichen Projekt, das ein Programm in c erstellen soll, das einen Bruchteil wie "1/4, 3/4, 7,5" und Ausgabe 11100101 < = welche ist nicht richtig das ist nur um die Idee zu geben. Aber bevor ich das mache, muss ich wissen, wie man einen Bruch im Binärformat darstellt. Jede Hilfe, die ich schätze. DankeWie man eine Fraktion im Binärformat darstellt

+1

"was nicht stimmt" - dann zeigen Sie bitte ein Beispiel, dass * richtig * ist. Welche Art von binärer Darstellung von Brüchen schlagen Sie vor? –

+0

(im Dezimalformat) 3/4 (im Binärformat) 11/100 –

+2

"1/4, 3/4, 7,5" ist nicht "ein Bruchteil", und es ist bei weitem nicht offensichtlich, wie es zu "11100101" (oder jeder String von Binärziffern, für diese Angelegenheit). Reword Ihre Frage. –

Antwort

2

Erstellen Sie einen benutzerdefinierten Typ für das:

typedef struct { 
     int numerator; 
     unsigned int denominator; 
} my_fract; 

Du verschiedene Größen für Zähler und Nenner auf Ihren Anwendungsfall abhängig machen können.

Mit diesem können Sie dann Konstruktoren hinzufügen, die Zähler und Nenner nehmen, oder floats oder doubles. Und vielleicht werden die Ausgaben von Konvertern auch wieder verdoppelt und verdoppelt, weil es bei diesem Typ keine "natürliche" Arithmetik gibt, und wenn Sie eine solche möchten, müssen Sie das selbst tun.

my_fract make_fract(int numerator, unsigned int denominator) 
{ 
     my_fract res; 
     res.numerator = numerator; 
     res.denominator = denominator; 
} 

double fract_to_double(my_fract foo) 
{ 
     return (double)foo.numerator/(double)foo.denominator 
} 

und so weiter.

Verwandte Themen