Hi…
Ich möchte folgende Gleitkommazahl in die normalisierte
Darstellung umwandeln:
0.00011001 * 8^-12 (Dualsystem, Exponentenbasis 2^3=8)
Das Ergebnis der Aufgabe müsste „0.11001 * 8^-13“ sein.
Normalisierte Darstellung heißt normalerweise: Genau eine Stelle (ungleich 0) vor dem Komma. In diesem Fall geht das nicht, gesucht ist wohl die größtmögliche Mantisse kleiner 1.
Ok. Ich nehme mal an, daß Dir Exponentialrechnung zumindest im Dezimalsystem halbwegs vertraut ist. In jedem Zahlensystem gilt: Multipliziert man eine Zahl mit der Basis (des Zahlensystems), so ist das Ergebnis dieselbe Zahl, um eine Stelle nach links verschoben.
Beispiele dezimal:
123 * 10 = 1230
1.23 * 10 = 12.3
Beispiel dual:
101001 * 10 = 1010010
0.00101 * 10 = 0.0101
Die Basis in Deiner Gleitkommazahl ist 8, dual 1000. Das finde ich recht ungewöhnlich, normalerweise verwendet man die Basis des Zahlensystems, in dem man sich befindet. Aber dazu später. Multipliziert man eine Dualzahl mit (dual) 1000, so wird sie (s.o.) um drei Stellen nach links verschoben. Somit dürfte Dir klar sein, daß das Ergebnis stimmt. Um ein unbekanntes Ergebnis zu finden, zählt man ab, um wieviele Stellen man schieben will, und passt den Exponenten entsprechend an.
Wenn man, wie üblich, die Basis des Zahlensystems verwendet hätte, könnte man auf eine Stelle genau schieben. Im Computerbereich gewinnt man ein zusätzliches Bit, indem man von der Normaldarstellung nur den Teil rechts vom Komma speichert, denn daß vorne immer eine 1 steht, weiß man ja.
genumi