Hexzahl in Dezimalzahlumwandeln, aber nicht so wie man es normal macht :)
-
Hallo,
ich habe ein Problem.
Ich habe hier vor mir ein Demoboard mit nem DSP. Alles egal, das Problem ist folgendes:
Über ein Terminalprogramm, welches Daten als Hexwerte übergibt, soll ich eine Frequenz einstellen am DSP. Das Problem ist nun, ich geb oben zum Beispiel 100 ein, das entspricht 100Hz, 1000 das entspricht 1000Hz undsoweiter. Jetzt übergeb ich ja aber von oben Hexwerte.
Ich such jetzt eine Funktion, welche mir 100hex einfach in 100dez umwandelt, 1000 hex in 1000dez,....., und wert wie 1AB, 1BC,.. einfach ignoriert.
nochmal zur verdeutlichung: eingabe 500hex über das terminal ergibt 500dex, eingabe 599hex ergibt 599dez, eingabe 5a0 ergibt nix, erst ab 600hex soll es wieder 600dez rauskommen.
ich hoffe einer kann mir helfen und zwar mit ner recht einfachen lösung.
-
irgendwie den realen wert in einen hex-string umwandeln (z.b. mit sprintf) und dann als dezimalwert interpretieren (z.b. mit atoi)...
-
Du zerlegst die Zahl Modulo 16 (um an die einzelnen Pseudo-Hexziffern zu gelangen) und baust sie dann auf Basis 10 wieder auf.
PS: Das Beispiel klingt übrigens stark nach einer BCD-Codierung.
-
jo ist bcd, ich les jeweils immer eine zahl als 8 bit zahl ein und insgesamt 4 zahlen (über die serielle schnittstelle), hab aber grad erfahren, es reicht wenn die frequenz in hex eingegeben wird, also net dezimal
hab ich wohl zuviel programmieren wollen^^
aber danke