www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hex Zahl in normierte Festkommazahl (dez.)


Autor: Anfänger Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute.

Ich habe mal eine Frage bezüglich Zahlen umrechnen.
Dabei geht es mir nicht um das einfach Prinzip eine Hex Zahl in eine Dez 
zu wandeln oder umgekehrt, sondern Aufgabe ist es eine Hex Zahl in eine 
"normierte Festkommazahl" (Dezimal) zu wandeln.

Als Vorlage ist gegeben: 25 Hex.

ich wäre jetzt wie folgt an die Aufgabe ran:
25 Hex ist: 0010 0101 binär
als Festkomma wäre das: 0.010 0101 oder?
dann wäre doch meine Dezimalzahl 0,2890625.
Kann das sein??

25 Hex als Dezimal normal gewandelt wäre ja 37.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt darauf an, wo man den Punkt hinsetzt.

0x25 ist 37.

Mit dem Punkt an der von dir angedeuteten Stelle ist der Wert 37/128, 
also wie von dir bestimmt.

Steht der Punkt zwischen den Nibbles, wäre der Wert 37/16.

Zudem unterscheiden sich die Zahlen darin, ob sie vorzeichenbehaftet 
sind oder nicht. In deinem Fall macht das bei der Interpretation kein 
Unterschied, weil das MSB nicht gesetzt ist.

-37/128 im n-1 Komplement ist

1.1011011

und in dieser Datstellung kannst du Zahlen in [-1,1) mit einer Rasterung 
von 1/128 darstellen; ohne Vorzeichen in [0,2).

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bischen Ja bzw. "jein".

Deine Berechnung stimmt, unter der Annahme daß das erste Bit das 
Vorzeichen (VZ) ist, hier eine "0", also positiv. Aber deine 
Schreibweise "0.010 0101" ist hier irreführend.
Besser wäre zu schreiben, Dein (angenommenes) Zahlenformat ist:

 Bitstelle        Msb  Msb-1  Msb-2  Msb-3  --->   Lsb
 Bedeutung        VZ   2^-1   2^-2   2^-3    usw.
                       0.5    0.25   0.125

 dein Beisp.:     0    0  1    0 0  1        0   1
                  +       0.25      0.03125      0.0078125
 ergibt  addiert  0.2890625

Annahme ist hier jedoch: Grösste (theor.) darstellbare Zahlen sind -1 , 
+1
wobei jedoch dann die Länge in Bits "unendlich" sein müsste.

Es gibt jedoch auch andere "Festkomma" Zahlenformate.
Es ist von der Vereinbarung abhängig.

Beispielsweise ist denkbar, den "Dezimalpunkt" mittendrin zu definieren, 
damit man Werte von  (theor.)  +16 ... -16  abbilden kann.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.