Float-Zahlenbereich --> 8bit Hexzahl

Gast #207384
Lesenswert?

Hallo zusammen,

ich habe ein riesen Problem.
Ein Zahlenbereich von -3,0 bis +3,0 soll in 255 Schritten als Hexwert
umgewandelt werden.
Also -3,0 entspricht 0x00 = 0d
      0,0 entspricht 0x7F = 127d
     +3,0 entspricht 0xFF = 255d

Bei einer Spanne von 6,0 erreiche ich bei Division durch 255 eine
Schrittweite von 0,0235...
Naiverweise habe ich an eine Tabelle gedacht. Aber das währe doch eine
zu plumpe Lösung , oder?

Was sagen die mathematischen Genies in diesem Forum dazu?

Es soll zwar in C programmiert werden, mich interessiert aber vorerst
das Prinzip zu einer Mathematischen Lösung.


Schönen Gruß    Brillitsch
Gast #207388
Lesenswert?

halt
hab au n fehler :-P
ohne die zeile
wert /= 255;!!!!!!!!

zum prinzip:

0-6 soll 0-255 entsprechen

255/6 = 42.5

daher bsp: wert = 0 (127 soll ergebnis sein)

wert += 3;   // wert = 3

wert *= 42.5;  //wert = 127.5

neuerwert = (char)wert //neuerwert = 127


also:

float wert;
char neuerwert

wert += 3;
wert *= 42.5;
neuerwert = (char)wert;
Gast #207390
Lesenswert?

Ich bin kein grosser Fan von so gebrochenen Zahlen.

Ich würde pro Bit mit 0.025 rechnen. bei 240 Schritten kannst du den
Breich von +3V bis -3V ausnutzen und hast noch reserve für Übersteuern
des Wertebereichs.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren