# Ungerade Nachkommastellen binär darstellen?



## Münchner (3. Jun 2010)

Servus,
ich soll hier -1/3 Binär darstellen.
Das wird ja eine endlos-Zahl, wie gehe ich denn da vor?

Ich kenne das Verfahren halt nur für Zahlen wie etwa 0,375 (zur Basis 10) = 0,011 (zur Basis 2), bei 0,33 beißts bei mir aber aus.

Hat jemand einen Tipp für mich?
Gruß
Münchner


----------



## SlaterB (3. Jun 2010)

wie gehst du denn bei 0,375 vor?


----------



## Münchner (3. Jun 2010)

0.375 = 0,0*05+1*0.25 + 1*0.125


----------



## SlaterB (3. Jun 2010)

und 1/3 kannst du doch genauso zerlegen,
0.5 ist nicht drin -> 0
0.25 ist drin -> 1
...

dass das ganze ewig weiter geht hast du selber schon gesagt, was soll man da noch hinzufügen?
höre nach 80 Stellen auf

auf die Dauer ist es dann wahrscheinlich schwieriger, die 1/3 + abgezogenen Bits überhaupt genaugenug dazustellen, double ist eher schwach,
wie genau soll es denn werden? BigDecimal hat beliebig viele Stellen und rechnet genau, dafür dann 100x langsamer


----------



## faetzminator (3. Jun 2010)

Wenn du immer nur Brüche hast oder daraus berechnen kannst, dann hast du eine Zahl mit endlich vielen Nachkommastellen, welche du abspeichern kannst.


----------



## SlaterB (3. Jun 2010)

oh ja, abstrakte Bruchrechnung könnte genauer werden als 1/3 als 0.3333333329286 in ein double zu zwängen


----------



## Münchner (3. Jun 2010)

ja ok, des klingt schon logisch mit der Darstellung, es war eben kein Limit angegeben, wie genau man das annähern sollte.
Wenn ich das jetzt in einfacher Genauigkeit darstellen soll, dann heißt das konkret für mich alle 23 Stellen der Mantisse vollzubekommen, ich sollte also nicht vorher aufhören, den Wert anzunähern, oder?


----------



## Münchner (3. Jun 2010)

OK in der Einfachdarstellung hab ich nun folgendes Ergebnis:
Vorzeichen: 1, weil negative Zahl
Exponent: 128 (zur Basis 10), weil 128-127 = 1: 1000.0000 (Basis 2)
Significand: 01001100110011001100110
Zusammengesetzt:
1 1000.0000 01001100110011001100110

sollte passen.
Vielen Dank für Eure Hilfe


----------

