# binärzahl addieren



## javastudent25 (25. Jan 2016)

hallo zusammen

ich hab schnell mal eine Frage. Ich versteh grad bei der Anpassung des Exponentes nicht, warum er jetzt da eine 1 einträgt.
Ich komme auf die Dezimalzahlen und könnte es über Dezimalzahlen zusammenrechnen und dann wieder in die binäre Darstellung. Aber bei der Prüfung wird dies zu lange dauern.
Ich weiss, dass die Exponenten einmal 0 für Zahl 1 und 4 für Zahl 2 ist. Aber warum der Eintrag 1. Irgendwie stimmt auch die gesamte Mantisse nicht überein..
Hier mein erstelltes Bild

Also was ich so sehe, schiebt er von der ersten Zahl alle Stellen der Mantisse um 4 nach rechts und übernimmt sie in Zeile Exp. angepasst.
Aber ich verstehe das nicht, warum man das darf..

edit: upps falsches Forum, sorry..


----------



## Meniskusschaden (25. Jan 2016)

Ich würde die Anpassung einfach mal schrittweise durchführen, also den Exponenten um 1 erhöhen, das Ergebnis berechnen und überlegen was mit der Mantisse geschehen muss, damit das Ergebnis wieder passt. Dann siehst du ziemlich schnell, wo die 1 herkommt.


----------



## javastudent25 (26. Jan 2016)

Ich würde ja gerne, aber ich weiss leider nicht mal wie anfangen..
Kannst du mir mal ein Beispiel geben?


----------



## Meniskusschaden (26. Jan 2016)

Wie würdest du es denn dezimal machen?


----------



## kneitzel (26. Jan 2016)

Die Antwort hast Du doch selbst bereits geschrieben. Was steht denn hinter dem Spaltentitel zur Erinnerung?

Und ganz wichtig: Die Zeile mit dem angepassten Exponent ist nur eine hilfreiche Darstellung und keine normalisierte Zahl mehr. Die Schreibweise untereinander gefällt mir daher nicht wirklich und ist auch fehleranfällig, da es ja zu einem Überlauf kommen kann. Mir gefällt daher diese Schreibweise nicht.

Schreib statt einer Mantisse doch direkt den Wert mit 1,... Dann ist die Exponentenanpassung eine Verschiebung vom Komma bis du addieren kannst und dann kommt wieder eine Verschiebung bis du 1,... Hast und schwups: Du hast wieder Exponent und Mantisse.

Aber das ist nur meine Meinung und jeder soll es so machen, wie er es am Besten versteht.


----------



## javastudent25 (26. Jan 2016)

Hallo Konrad, Meniskusschaden

Also ich rechne es so: 
zahl 1 = 1.011......................1*2^0 
zahl 2 = 11100,01*2^0
also 1,37500012+28.25
Vielleicht bin ich zu blöd, aber ich weiss trotzdem nicht wie er auf die Exp. Angepasst Darstellung kommt...
biased exponent in der angepassten Zeile ergibt irgendwie immer noch 2^4 und nach dem Komma irgendwas anderes
wenn ich doch 4 stellen nach rechts rücke und alles verschiebe, kann dann doch nicht der alte bias exponent stehen was ja 131 ergibt.. der müsste dann doch auch 127 sein und die Stellen der Mantisse 01000............
Wenn so ein Mind-Fuck bei der Prüfung kommt steh ich an, nur weil ich nicht versteh, was der Dozent will..


----------



## kneitzel (26. Jan 2016)

Also die Mantisse bedeutet 1,<Wert der Mantisse>
Dass der Exponent Biased ist, ist an dieser Stelle unkritisch, da wird ja nicht den Wert ausrechnen, daher lassen wir den einfach so, wie er ist.
Nehmen wir also den biased Exponent der ersten Zahl:
01111111  mit dem Wert 1,011000...
Nun erhöhen wir den Exponent um 1, was eine Multiplikation mit 2 entspricht, was ein verschieben des Kommas entspricht:
10000000 mit dem Wert 0,1011000...
Das machen wir nun noch 3 mal:
10000011 mit dem Wert 0,0001011000...

Nun haben wir den gleichen biased Exponent und die Werte:
0,0001011000...
1,110001000...
Das siehst Du auch in der Tabelle. Nur eben dass das "0," und "1," weggelassen ist.

Die Mathematische Gleichung ist ja x*v1 + x*v2 mit x dem Exponent und v1 und v2 die Werte ohne den Exponent. Und nun gilt x*v1 + x*v2 = x* (v1+v2). Somit können wir v1 und v2 nun addieren:
1,1101101000 
Und nun haben wir das Glück, dass wir hier gleich  die normalisierte Form haben. Wir können also die 1, weglassen und den Exponent haben wir ja als biased exponent belassen, so dass wir jetzt die Lösung haben, so wie sie angegeben wurde.

Konrad


----------



## kneitzel (26. Jan 2016)

Das ganze können wir ja auch einmal im Dezimal-System machen. Wir haben zwei zahlen:
10^12 * 1,2345678
10^14 * 8,7654321

Um diese Zahlen addieren zu können, müssen wir nun erst einmal das 10^x "ausklammern". Dazu bringen wir nun die erste Zahl auf 10^14. (Mathematische Grundlage ist halt, dass a * b = (a*c) * (b/c).)
Somit 10^12 * 100 = 10^14. Somit müssen wir die 1,2345678 / 100 rechnen:
10^14 * 0,012345678
10^14 * 8,7654321

Was hier jetzt zum tragen kommt - wir haben nur eine begrenzte Anzahl an Stellen, d.h. es wird etwas abgeschnitten und geht verloren:
10^14 * 0,0123456
10^14 * 8,7654321

Nun können wir die Zahlen addieren:
10^14 * (0,0123456 + 8,7654321)

Dieses Beispiel funktioniert prinzipiell wie beim binären System. Das Einzige, das entfällt ist die Normalisierung. Immer eine 1 weglassen ist ok, aber hier kann eine Ziffer ja mehr Werte annehmen. Daher kann diese Optimierung nicht erfolgen.


----------



## javastudent25 (26. Jan 2016)

kneitzel hat gesagt.:


> Also die Mantisse bedeutet 1,<Wert der Mantisse>
> Dass der Exponent Biased ist, ist an dieser Stelle unkritisch, da wird ja nicht den Wert ausrechnen, daher lassen wir den einfach so, wie er ist.
> Nehmen wir also den biased Exponent der ersten Zahl:
> 01111111  mit dem Wert 1,011000...
> ...



Hey Konrad
das oben hätte schon gereicht, kurz und bündig. Aber vielen Dank nochmals für deine Mühe, wirklich top 
Daumen hoch


----------

