Gleitpunktdarstellung

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hallöchen, bin noch neu hier und noch nicht so richtig orientiert.
    Hoffe das meine Frage dann hier rein passt.


    Es geht um Gleitpunktdarstellung. Wie kann ich die Zahl - 0,96 binär darstellen?

    Angefangen habe ich mit 0,96 = 96 * 10^-2

    Nun hakts...

    Formel:
    (1)^V * (1,M) *2^E-bias

  • Hm, danke, hilft mir aber nciht weiter

    Habe das Prinzip ja verstanden.

    Bsp: 5 = (101)

    1,01 * 2^2

    1,01 *2^129-127

    Also:
    Vorzeichen: 0 (da positiv)
    Exponent: 129
    Mantisse: 1,01


    Nur komm ich nicht mit 0,96 klar...ob - oder + spielt keine Rolle, da brauch man ja nur 1 oder 0 setzen, aber bei dem 0,96 hakts dann.

    Wäre super wenn jemand der das drauf hat mal kurz melden könnte.

    Vllt lässt sich 0,96 auch gar nicht exakt darstellen, aber das weiß ich nicht...Wie würde ich dann die nächst größere, bzw. kleinere Zahl rausbekomen...???

  • du nimmst, wenn du ins 2er-system umrechnest, 0,96, multiplizierst das mit 2, nimmst den vorkommateil als erste stelle nach dem komma; den nachkommateil multiplizierst du wieder mit 2, erhältst die zweite stelle nach dem komma; das kannst du immer so weitermachen, bis entweder die gewünschte genauigkeit erreicht ist oder du bei 0 ankommst (dann ist die dezimalzahl exakt in binärer form darstellbar).

    0,96 * 2 = 1,92 => 1
    0,92 * 2 = 1,84 => 1
    0,84 * 2 = 1,68 => 1
    0,68 * 2 = 1,36 => 1
    0,36 * 2 = 0,72 => 0
    0,72 * 2 = 1,44 => 1
    0,44 * 2 = 0,88 => 0
    0,88 * 2 = 1,76 => 1
    ...

    wie erhalten also (0,96)[t]10[/t]=(0,11110101...)[t]2[/t] und wollen uns mit dieser genauigkeit zufrieden geben.
    wir wollen diese zahl nach dem single-datentyp gemäß ieee 754-1985 codieren, einem system, welches eine stelle für das vorzeichen, 8 stellen für den exponenten (in exzessdarstellung) sowie 23 stellen für die mantisse (mit impliziter darstellung der führenden 0) vorsieht.

    das vorzeichenbit ist bei 0,96 positiv, also 0
    des weiteren müssen wir die mantisse normieren, d. h. vor dem komma steht eine 1 und sonst nix. wir verschieben also die mantisse um eine stelle nach links, sodass wir 1,1110101... erhalten; der exponent verändert sich dadurch von 0 auf -1. da wir eine implizite darstellung der führenden 1 der mantisse wünschen, werden wir diese einfach weglassen, da es ohnehin klar ist, dass dort eine 1 stehen muss (es sei denn, es handelt sich um eine subnormale zahl, aber dann ist der exponent ohnehin e[t]min[/t]-1).
    dieser exponent sei in exzessdarstellung dargestellt; der exzess beträgt bei 8 bits 2^7, also 10000000. davon ziehen wir 1 ab, wir erhalten 01111111.

    und jetzt brauchen wir das alles nur noch in einer wurst hintereinander schreiben, und haben unsere gleitkommazahl:
    0 01111111 11101010000000000000000

    da fallen jetzt natürlich diese vielen nullen in der mantisse auf, d. h. die genauigkeit lässt hier ein wenig zu wünschen übrig. wenn du ein genaueres ergebnis wünschst, musst du das ganz oben gezeigte verfahren so lange fortsetzen, bis die gewünschte genauigkeit erreicht ist.

  • hab ich das nicht gesagt? natürlich lässt sich diese zahl nicht genau darstellen; wenn du eine höhere genauigkeit haben willst, musst du entsprechend mehr stellen berechnen, entsprechend des oberen verfahrens. aber ganz genau wird das nie.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!