HEXADEZIMAL NACH BCD
-
Hallo,
wie kann ich unter C eine Hexadezimale Zahl nach BCD wandeln?
Z.B 0xffff HEX = 65535 BCD
Gruß
Johann
-
in ein Array zerlegen und anschließend Zeichen für Zeichen über ne Tabelle umwandeln.
BCD war ja der Code wo die Bits einzeln kodiert sind, oder?Hab jetzt grad keinen Code da der ne Zahl in die Ziffern zerlegt, aber viele
Compiler haben eine Funktion mit dem Namen itoa()
-
Also wenn du einen hexadezimalen Wert (gespeichert in einem char-Array) in einen dezimalen umwandeln möchtest, dann geht das auch so:
sscanf(hexwert, "%x", &dezwert);
Wurde aber bereits vielfach behandelt hier. Das Anschmeissen der Suche hätte auch geholfen
-
Ich kann dir zwar ned sagen, wie ma des macht,
aber nur zur Klärung von BCD-Zahlen:Hier belegt jede Ziffer einer Dezimalzahl 4 Byte.
z. B. 24 -> 0010 0100
Probleme gibts halt z. B. beim Rechnen:
8 + 5 = 13 1000 + 0101 = 1101 aber 13 BCD = 0001 0011 (=> muss umgewandelt werden)
mfg
Martin
-
Ein einfaches (unvollständiges) Beispiel:
// Umwandlung HEX in BCD: 0x00 bis 0x9F (= 159dez) unsigned char Hex2Bcd (unsigned int iHex) { if (iHex >= 159) return (0xf9); int iTmp = iHex / 10; return (unsigned char)(((iTmp << 4) & 0xF0) + ((iHex - iTmp * 10) & 0x0F)); }
Rechnen kann man mit BCD-Zahlen, wenn man sie vorher wieder in int umwandelt.
Blackbird
-
wofür zum Teufel steht BCD?
-
Binary Coded Digits
-
SirLant schrieb:
Binary Coded Digits
Binary Coded konnte ich erahnen aber das D leider net. Binärdarstellung hört sich besser an...
-
Hallo,
das BCD-Verfahren ist auch (eher) unter dem Namen "binary coded decimals" bekannt
Binary coded digits habe ich noch nie gehört, obwohl im Kontext klar werden kann, daß man dieses Verfahren damit meint (tatsächlich gibt es einige Treffer mit Google, wenn man nach "binary coded digits" suchen läßt
)
MfG
-
Kann auch decimals gewesen sein ist schon nen halbes Jahr her seit wir das in
der Schule hatten, digits ist für mich logischer, weil man die Ziffern einzeln kodiert.
-
also für mich ist "binary coded decimals" logischer und "genauer", da hierdurch ausgedrückt wird, daß mit diesem Verfahren nur (ganze) Dezimal-Zahlen binär kodiert werden, nicht etwa irgendwelche Ziffern einer Zahl, die in einem anderen System als dem Dezimal-System dargestellt ist.
MfG