Darstellung von Gleitkommazahlen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich nehme mal an, dir geht es um normierte Gleitkommazahlen.
Sowas wie a*b^c

also bspw. sowas wie
0.12345*10^5

wobei 10 hier die basis ist, 5 der exponent und 12345 die mantisse.

du sollst dir hier wohl einfahc überlegen was die kleinst und größte so darstellbare zahl ist.

Wenn ich dich richtig verstehe ist vorgegeben dass basis=2 ist, mantissenlänge 3 ist und expoentn zwischen -1 und 2 ist.

da würde ich einfahc mal ein wenig überlegen, welches die negativste zahl ist, die sich da bilden lässt und was die positivste.

Damit eine zahl betragsmässig am größten ist, würde ich die mantisse setzen auf
111.
damit wäre jene zahl gleich
0.111*2^e

wir wollen einfahc mal 4 extremfälle durchprobieren:
1) mantisse 111, exponent 2:
=0.111*2^2=11.1 in binärschreibweise.

=1*2^1+1*2^0+1*2^-1=2+1+0.5=3.5

2) mantisse 000 exponent 2:
=0.000*2^2=0 egal in welchem Zahlsystem

3) mantisse 000 exponent -1
immer noch 0, vergleich 2)

4) mantisse 111 exponent -1:
=0.111*2^-1=0.0111
in dezimal: 1*2^-2+1*2^-3+1*2^-4=1/4+1/8+1/16

ergibt irgendwas zwichen 0 und 1.

Fazit:
eine negative zahl wirst du mit der darstellungsweise nicht hinkriegen.
die kleinste mögliche zahl ist 0.
dafür muss die mantisse gleich 000 sein, was der exponent ist, ist dann egal.

die größte zahl hat Mantisse 111 und exponent 2, in dezimal hat sie den zahlenwert
3.5

Demnach gilt für jede so bildbare gleitkommazahl Z:
0<=Z<=3.5
bzw.
0.000*2^-1<=Z<=0.111*2^2

Falls ich dich nicht falsch verstanden habe.

Um negativzahlen hinzukriegen, bräuchte man noch ein Vorzeichen byte oder so


berndao2  19.11.2019, 18:23

Oh Moment, die wollten ja alle Zahlen haben.

Musst du halt alle denkbaren Mantissen
0.000
0.001
0.010
0.011
etc.
bis 0.111

kombinieren mit den möglichkeiten für den exponenten:
e=-1,e=,e=1,e=2

Irgnedwie kann man hier sicher zeit sparen denn bspw.

m 0.001 e2 ist dasselbe wie m 0.01 e1 .

Im zewifelsfall musst du halt alle Kombinationen durchprobieren :-/

1

pcdenker  19.11.2019, 18:17

Warst schneller!

0