Hallo, ich habe eine zweistellige, dezimale Zahl. Die erste Stelle soll in das low-Nibble und die zweite Stelle (Zehnerstelle) in das high-Nibble eines Bytes gesetzt werden. Hat jemand eine Idee, wie ich das Problem lösen kann? Danke!
Durch 10 dividieren? Den Rest bei der Division berechnen? Für beides gibt es Operationen in C. / ist die Division % ist der Rest der Division.
Darauf bin ich schon gekommen. Aber wie kann ich eine Zahl NUR in ein Nibble reinschreiben?
Basilius W. schrieb: > Darauf bin ich schon gekommen. Dann sag das doch gleich! > Aber wie kann ich eine Zahl NUR in ein > Nibble reinschreiben? Mittels Bit-Operationen? Zuerst mit einem & und entsprechender Maske die jeweiligen Bits gezielt auf 0 setzen. Dann mit einem Oder die jeweils notwendigen Bits gezielt auf 1 setzen. Beim High-Nibble muss man sich halt den Wert dessen 1-Bits eingeodert werden sollen entsprechend zurechtschieben. Ach, ich vergass. Du willst ja Low-Nibble und High-Nibble gleichzeitig setzen. Vergiss die & Operation. Low-Nibble (Einer) mit einer entsprechend zurechtgeschobenen Version des 'High-Nibbels' (Zehner) verodern und fertig.
a=zahl1_10er, b=zahl2_1er, c=byte_BCD c=b*16+a; oder wenn nur a upgedated wird c=c&0xf0|a; oder bei nur b c=(c|~15)&~b<<4
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.