Modulo nur ganze Zahlen?

Gast #1649652
Lesenswert?

Hallo,
ich möchte mit folgendem Code eine Hex  Zahl in eine  Ascii Hex bringen.
uint8_t zahl;
uint8_t zehner;
uint8_t einer;
zahl++;
zehner  = (zahl / 10) | 0x30;
einer   = (zahl % 10) | 0x30;
Das Funktioniert auch soweit ganz gut, bis auf das die einer Stelle, 
beim Hochzählen, immer nur 2,4,6 u.s.w. anzeigt. Die Zehner Stelle ist 
einwandfrei(1,2,3,4 u.s.w.). Woran liegt das?
(bitte nicht meckern, bin Anfänger)
Gruss
Olli
#1649671
Lesenswert?

Da mit dem von dir geposteten Code nur eine Wandlung durchgeführt wird, 
kann der von dir beschriebene Effekt damit nicht entstehen - es wird nur 
ein Wert gewandelt und was sonst passiert, kann ich dir leider nur 
sagen, wenn du deinen Code vollständig postst.
Gast #1649674
Lesenswert?

Olli schrieb:
> zehner  = (zahl / 10) | 0x30;
> einer   = (zahl % 10) | 0x30;

Das "|" (oder) macht hier keinen Sinn. Probier es mal mit "+".

zehner  = (zahl / 10) + 0x30;
einer   = (zahl % 10) + 0x30;

Gruß,
Magnetus
#1649704
Lesenswert?

Eben.
Irgendwo im Code gibt es noch ein zweites ++ oder etwas Gleichwertiges.
Aber solange er sich wieder einmal standhaft weigert, den Code komplett 
herzuzeigen, kann man ihm den Fehler auch nicht zeigen.

PS: und ausserdem steht in der Aufgabenstellung etwas von Hex-Zahlen. 
Das wird doch nicht wieder unser krampfhafter HEX-Umrechner sein?

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