|
|
| Autor |
Nachricht |
Timo_P Full Member


Anmeldungsdatum: 26.10.2007 Beiträge: 268
|
Verfasst am: 07 Nov 2007 - 15:19:59 Titel: Konvertieren in Gleitkommazahl - Erklärung gesucht |
|
|
Hallo,
Ich habe eine Frage zur Umwandlung von Zahlen in ein Gleitkommaformat.
Ich habe z.B. eine Zahl 123 im Dezimalsystem vorliegen. Wie würde ich diese in ein 16 Bit, 32 Bit oder so System umwandeln ?
Also das erste Bit ist ja für das Vorzeichen gedacht. Also eine "1" bei negativem Vorzeichen und eine "0" bei positiven Vorzeichen.
Dann geht es an die Exponenten:
Darf ich mir nun aussuchen, was ich aus der Zahl mache? Also im Dezimalsystem z.B. 123 * 10^-3 oder 123 *10^4 .. jenachdem, wie ich grad Lust drauf habe, oder gibt es da Regeln abgesehen von den Bits die mir für den Exponent zustehen?
Wie gehe ich anschließend mit der Mantisse um ? Muss ich da die 123 lediglich ins Binärsystem wandeln ? Also 123 = 1111011.
Schreibe ich dann wenn ich nur im 32 Bit Format bin:
0 für mein vorzeichen ...
1111011 für meine Mantisse ... wenn ich mehr stellen für die Mantisse habe die restlichen mit "0" auffüllen? Also ...01111011 ?
Und für meinen Exponenten ?
Finde keine Seite auf der dass Schritt für Schritt erklärt wird, wie man eine Zahl in ein Gleitkommaformat umwandelt :( |
|
 |
gotcha Full Member


Anmeldungsdatum: 15.01.2007 Beiträge: 249
|
Verfasst am: 07 Nov 2007 - 15:30:02 Titel: |
|
|
Moin,
hier:http://de.wikipedia.org/wiki/Gleitkommazahl#Gleitkommazahlen_in_der_Digitaltechnik
Gruß |
|
 |
Timo_P Full Member


Anmeldungsdatum: 26.10.2007 Beiträge: 268
|
Verfasst am: 07 Nov 2007 - 16:34:29 Titel: |
|
|
Danke, den Link kannte ich. Verstehe dass mit dem Exponenten nicht. Denkt man sich einfach aus, wie weit man das Komma verschieben will ?
Also bei 123 folgende Möglichkeiten :
12,3
1,23
0,123
0,0123
.
.
.
u.s.w.
Mantisse m =
123/2= 61 R 1
61/2= 30 R 1
30/2= 15 R 0
15/2= 7 R 1
7/2= 3 R 1
3/2= 1 R 1
1/2= 0 R 1
---> 1111011
Ich habe an dem Beispiel nun im 32 Bit Format folgendes:
V = 0
M = 1111011
E = Ja da fehlt es mir dran .. wie komm ich da drauf ? Ist mein Vorgehen bisher richtig? |
|
 |
Whoooo Valued Contributor


 Anmeldungsdatum: 08.06.2005 Beiträge: 9161
|
Verfasst am: 07 Nov 2007 - 17:35:40 Titel: |
|
|
| Zitat: |
Danke, den Link kannte ich. Verstehe dass mit dem Exponenten nicht. Denkt man sich einfach aus, wie weit man das Komma verschieben will ?
Also bei 123 folgende Möglichkeiten :
12,3
1,23
0,123
0,0123 |
Hier wird "normalisiert". Im allgemeinen wird das Komma so gesetzt, dass alle vorangehenden Ziffern 0 sind, sprich die erste Stelle ungleich 0 wird die erste Nachkommastelle. Beispiele:
123 => 0.123 * 10^3
12.3 => 0.123 * 12^2
1230 => 0.123 * 10^4
0.00123 => 0.123* 10^-2
Da das Normalisierungsverfahren bei der Decodierung als bekannt vorausgesetzt wird, wird anschließend auf die führende 0 verzichtet und beispielsweise die Zahl 123 in 0.123*10^3 konvertiert und dann mit Mantisse 123 und Exponent 3 gespeichert. Wer auch immer die zahl dekodiert (ALU, oder?), der weiß, dass es sich um Nachkommastellen handelt. Soweit klar? _________________ <SA> i'm going to become rich and famous after i invent a device that allows you to stab people in the face over the internet |
|
 |
Timo_P Full Member


Anmeldungsdatum: 26.10.2007 Beiträge: 268
|
Verfasst am: 08 Nov 2007 - 21:20:58 Titel: |
|
|
Hallo,
Danke für die Tips. Brauche nun ein Programm, Tool oder so aus dem Netz mit dem ich mein Ergebniss überprüfen kann. Es gibt ja die Programme in die man eine Dezimalzahl gibt und das Programm diese in ein gewünschtes System konvertiert. Brauche dies nun für Gleitkommazahlen. Kennt wer eins? |
|
 |
Whoooo Valued Contributor


 Anmeldungsdatum: 08.06.2005 Beiträge: 9161
|
|
 |
|