[Anfängerprobleme] Hex-Wert in char casten
-
@Mechanics ja, das frag ich mich auch. ich red' mir halt ein, daß es die Nachwelt nicht unkommentiert lesen soll.
-
@Swordfish sagte in [Anfängerprobleme] Hex-Wert in char casten:
Du kannst nicht irgendwas im speicher als uintN_t behandeln.
Klingt auch plausibel, schon im Hinblick auf die Endianess. Somit bleibt wohl nur das Aufdröseln in einzelne Bytes, also shiften und &0xff.
-
Wenn du mich auch zur Nachwelt zählst - ich finds lästig, durch diesen Quatsch zu scrollen.
-
Tjoa. Unkommentiert stehenlassen ist aber auch nicht wirklich eine Option. (oder? Kommst mal in den Discord, @Mechanics ?)
@RBS2 sagte in [Anfängerprobleme] Hex-Wert in char casten:
Klingt auch plausibel, schon im Hinblick auf die Endianess. Somit bleibt wohl nur das Aufdröseln in einzelne Bytes, also shiften und &0xff.
Man braucht hier garnichts shiften und mit Endian hat es auch nichts zu tun, daß es UB ist.
argv
ist ein Array ofchar
. Einfach in Dezimal umrechnen und gut is' (-'0'
bzw.-'a' + 10
mal 16 oder auch nicht).
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
-
also ich bedank mich für die regen Kommentare.
Wie gesagt falscher thread tut mir Leid.
Und ihr habt mich schon ziemlich verwirrt muss ich mal sagen.
-
@__Ars3n Ja, tut mir sorry. Du hast in
argv[1]
eine Zeichenkette, die eine Hexadezimale Zahl ist. Wennargv[1][0]
nicht'0'
undargv[1][1]
nicht'x'
ist, dann kannst du dem Benutzer schonmal eine Fehlermeldung geben. Für die weiteren Zeichen bekommst Du die Zahlenwerte dadurch, daß du'0'
abziehst oder'a'
wenn es ein Buchstabe ist (isdigit()
aus<cctype>
hilft dabei).
-
@Swordfish cool danke für die Antwort. Mein Gehirn ist nicht auf die Idee gekommen, dass ich argv[ ][ ]machen kann.
Dann probier ichs mal weiter danke.
-
strtoul
mit Basis 0 wandelt das auch.
So wie Zahlenliterale im Code.
Mit führender 0 als Oktal.
mit führender 0x als Hex.