Kommazahl im Dualsytem |
27.11.2004, 12:58 | lloyd banks | Auf diesen Beitrag antworten » | ||
Kommazahl im Dualsytem also ich wollte mal ne frage zum dualsystem stellen. wir haben die aufgabe ein paar zahlen darin zu berechnen. das geht auch ganz gut, allerdings habe ich jetzt die schwierigkeit eine kommazahl darzustellen. also sagen wir mal 0,5. das ist ja 2^-1. aber dann ich nun einfach 01 schreibe reicht das ja nicht aus. der computer muss ja noch von irgendwoher wisse, welcher basis die ^1 haben soll. also man würde ja normalerweise denken, dass (10) mit basis 2 = 2 mit basis 10 ist. ich hoffe das problem kann man verstehen.. würde mich über nen tip oder nen link freuen. thx dieter |
||||
27.11.2004, 13:01 | klarsoweit | Auf diesen Beitrag antworten » | ||
RE: Kommazahl im Dualsytem so richtig habe ich das Problem nicht verstanden. 0,5 im Dualsystem ist 0,1. |
||||
27.11.2004, 13:14 | lloyd banks | Auf diesen Beitrag antworten » | ||
ja hast recht.. ich will das ganze ja im 32 bit system im computer darstellen... und da kann ich dann ja nicht einfach ein komma einbauen. also muss ja irgendwo sowas stehen wie bei einer negativen/positiven zahl die das 32ste bit 1 bzw 0 |
||||
27.11.2004, 13:29 | AD | Auf diesen Beitrag antworten » | ||
Das kannst du schon, nur muss das Programm, was mit diesen Zahlen operiert, über die Position der Kommastelle informiert sein. Das ganze nennt man, glaube ich, Festkommazahlen - im Unterschied zu den meist üblichen Gleitkommazahlen (float, double in "C/C++"). |
||||
27.11.2004, 19:32 | sonja1893 | Auf diesen Beitrag antworten » | ||
Eine Möglichkeit zur Dualdarstellung von Zahlen im Gleitpunktformat ist die folgende: Es wird eine bestimmte Zahl von Bits für jede der Größen Vorzeichen, Charakteristik und Betrag der Mantisse reserviert. Bei einem Speicherplatz von 32 Bit so: Vz: 1 Bit Mantisse: 23 Bit Charakteristik: 8 Bit Das weitere Vorgehen: 1. Man wandelt den Vorkommateil ins Dualsystem um. Das ist in deinem Fall recht einfach: 0 ist und bleibt nun mal 0. 2. Man wandelt den Nachkommateil ins Dualsystem um: 0.5 x 2 = 1.0 Würde hier nun z.B. 1.2 rauskommen, müsste man weiterrechnen mit 0.2 x 2 usw. Hier haben wir aber Glück und wir können schon mit dem nächsten Schritt weitermachen. 3. 0.5 im Dezimalsystem ist also im Dualsystem (die 1 kommt von obigem 1.0). Da wir aber hier für die Mantisse 23 Bit haben, machen wir das Ganze etwas länger: wir fügen vor der 1 bei 0.1 noch 22 mal 0 ein, so dass wir die Mantissenlänge von 23 Bit erreichen. Ergebnis: 0.00000000000000000000001 4. Jetzt wird die Charakteristik berechnet: Ch = K + Exponent K ist eine Konstante. In deinem Fall ist K = 127. Der Exponent ist 22 (wegen der eingefügten Nullen). Also ist Ch = 149. Umgerechnet ins Dualsystem: 10010101 Somit ist das Ergebnis: Vz: 0 Mantisse: 00000000000000000000001 Charakteristik: 10010101 insgesamt: 32 Bit Probe: -23 steht hier, weil die 1 in der Mantisse an 23. Stelle kommt und 22 steht dort wegen dem Exponenten. Ich hoffe, du konntest mir folgen. |
||||
27.11.2004, 22:07 | lloyd banks | Auf diesen Beitrag antworten » | ||
hey danke! genau so eine erklärung habe ich gebraucht. vielen dank! mfg dieter |
||||
Anzeige | ||||
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |