Java Projekt Github



  • Triangle schrieb:

    ohne jetzt ein neues Thema aufmachen zu wollen.

    Ich glaube, es wäre schon gut, hierfür ein neues Thema aufzumachen. Und für die float-0-Frage eigentlich auch.



  • Printe schrieb:

    Triangle schrieb:

    Und noch eine Frage. Wie wird eigentlich bei float die Zahl 0 dargestellt.

    https://de.wikipedia.org/wiki/IEEE_754

    Die Mantisse hat 23 bit , aber die fuehrende 1 nimmt man ja immer explizit an.

    Nur bei den sogenannten "normalisierten" Zahlen. Bei den "denormalisierten" nicht.

    Ok . Wie lautet also die Darstellung der Zahl 0 bei den "normalisierten" Zahlen 🙂



  • Exponent 000000 ist ja 1 . Und 1*1 = 1



  • Steht doch da, guck hin und lies. https://de.wikipedia.org/wiki/IEEE_754#Interpretation_des_Zahlenformats

    Exponent = 0, Mantisse = 0. Vorzeichenbit 0 oder 1.
    Das ist wegen E = 0 eine sog. denormalisierte Fließkommazahl, bei der die Vorkommastelle eben nicht 1 ist wie bei den normalisierten Zahlen.
    Da das Vorzeichenbit beide Werte haben kann, gibt es +0 und -0,
    was allerdings gleich viel ist.

    Der Wert ist also entweder +0*2⁰ oder -0*2⁰, in jedem Fall also 0.



  • Für Sonderfälle stehen spezielle Bitmuster zur Verfügung. Um diese Sonderfälle zu kodieren, sind zwei Exponentenwerte, der maximale ( {\displaystyle E=11\dots 111=2^{r}-1} E=11\dots 111=2^{r}-1) und die Null ( {\displaystyle E=00\dots 000} E=00\dots 000) reserviert. Mit dem maximalen Exponentenwert werden die Sonderfälle NaN und ∞ kodiert. Mit Null im Exponenten wird die Gleitkommazahl 0 und alle denormalisierten Werte kodiert.

    laut wikipedia ist wenn der Exponent 0 ist , dies dann die Zahl 0 oder eine von 0 nicht unterscheidbare Zahl



  • JediRitter schrieb:

    laut wikipedia ist wenn der Exponent 0 ist , dies dann die Zahl 0 oder eine von 0 nicht unterscheidbare Zahl

    laut wikipedia ist wenn der Exponent 0 ist , dies dann die Zahl 0 oder eine von 0 nicht unterscheidbare Zahl oder eine denormalisierte Zahl - das steht da auch.

    Eine denormalisierte Zahl ist eine, die nicht die Form
    1.M * 2^E (M = Nachkommateil der Mantisse, E = Exponent)
    hat, sondern die Form
    0.M -- das *2^E kann hier entfallen wegen E = 0, also 2^0 = 1

    Genaugenommen ist die 0 (0.0 * 2^0) genauso denormalisiert wie jede andere Denorm-Zahl. Nur wegen ihrer besonderen Bedeutung wird sie nochmal extra aufgezählt, damit es auch ja jeder kapiert.



  • aha.ok.

    aber sagen wir mal die zu speicherne Zahl ist tatsaechlich: 1.110111

    wie wird die abgespeichert. So: Vorzeichen 0 Mantisse 110111 Exponent 0

    laut wikipedia ist eine Zahl deren Exponent 0 ist, 0 . Aber meine genannte Zahl ist ja nicht 0. Oder hab ich falsch gerechnet 🙂



  • Du hast den Biaswert B nicht beachtet.



  • JediRitter schrieb:

    aha.ok.

    aber sagen wir mal die zu speicherne Zahl ist tatsaechlich: 1.110111

    wie wird die abgespeichert. So: Vorzeichen 0 Mantisse 110111 Exponent 0

    laut wikipedia ist eine Zahl deren Exponent 0 ist, 0 . Aber meine genannte Zahl ist ja nicht 0. Oder hab ich falsch gerechnet 🙂

    Oh mein Gott. Natuerlich muss ich als Exponent 127 speichern da der Bias 127 ist und wenn ich den subtrahiere komme ich genau auf die 0 . Exponent 0 und 255 haben dagegen spezielle Bedeutungen.

    Danke. Ich glaub jetzt hab ichs verstanden. Aber erst jetzt wird mir klar wieviel Berechnung da im Hintergrund stattfindet wenn man einen double/float verwendet 🙂



  • Warum verdoppelt sich beim Betriebssytem immer die bit Zahl.

    Windows 3.1 war 16bit

    Windows XP 32 bit

    und jetzt Windows 10 ist 64 bit.

    Klar es ist deswegen weil der Assembler Befehl so funktioniert. Also warum verdoppeln der Prozessor immer sein bit Anzahl. So ganz logisch ist mir das nicht.