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
Wo initialisierst du denn die Variable zahl? Poste mal den entsprechenden Code vollständig.
habe vergessen es zu schreiben, dass sie mit 0 init. wird. Ist da Grundsätzlich was falsch, oder warum kommen nur die geraden Zahlen bei einer?
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.
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
magnetus schrieb:
> Das "|" (oder) macht hier keinen Sinn. Probier es mal mit "+".
Irrelevant.
magnetus schrieb:
> Das "|" (oder) macht hier keinen Sinn. Probier es mal mit "+".
Das ist schon richtig so - + und | haben hier denselben Effekt.
Zumindest, wenn zahl < 100 ist.
Und wieso schreibst du 0x30? Nimm stattdessen '0', dann weiß man sofort, dass es um eine Umwandlung einer Ziffern in ASCII geht...
Jungs, jetzt beißt euch mal nicht an Nebensächlichkeiten fest. Es ist völlig gleichgültig, ob man 0x30, 060, '0' oder 48 schreibt.
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?
Karl heinz Buchegger schrieb:
> Das wird doch nicht wieder unser krampfhafter HEX-Umrechner sein?
Dabei hattet ihr es ihm so erklärt, dass selbst ein Grundschüler es
verstanden hätte...
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.