HEX-Wert aus Zeichenkette in Integer umwandeln
-
na ja ob da nun cout oder printf steht
Also du willst einen Hexwert in einem Integer speichern?
Dann schreib doch eine Funktion die ihn in einen dezimalwert umrechnet und dann zuweist:
74B62C40 = 7*167+4*166+11*165+6*164+2*163+12*162+4*161+0*160
das ergebnis ab in ne int variable.
Na was mach ich jetzt wieder falsch
?
-
:p Jetzt machst du nix falsch, aber es geht viel einfacher. :p
Hab es grad rausgefunden und zwar kann man einfach die Funktion strtol verwenden.
Die macht alles!
Danke trotzdem
-
ich würde mich freuen wenn du den code posten würdest
interessiert mich!
-
So gehts:
int main(int argc, char *argv[]) { int test=0xabcdef00; printf("%x, %X, %i",test,test,test); system("PAUSE"); return 0; }
Unterschied zwischen x und X ist lediglich die Groß/Kleinschreibung
*edit*
Args sehe gerade daß Du da ne Zeichenkette hast und mit der Ackern musst... Da fällt mir auch nix zu ein.
-
Danke für die Tips!
Hier ist meine Lösung:
char test="AABBCCDD"; long hex; hex = strtoul(test,NULL,16);
Und fertig ist das Ergebnis. In hex steht nun der Ganzzahlige Wert der HEX-Zeichenkette drin.
MfG
MTC
-
Es gibt übrigens auch noch sscanf()
char test="AABBCCDD"; long hex; sscanf(test, "%x", &hex);
Bei strtol() wär ich mir nicht sicher, ob er wirklich immer den richtigen Wert bringt.
Probier mal den hexadezimalen Wert 12 mit strtol() umzurechnen. Wenn dann nämlich wieder 12 rauskommt, solltest du dir gedanken machen
-
Ich denke strtoul arbeitet korrekt, hab verschiedene zahlen und system gestestet
char test[]="1111"; long hex; hex = strtoul(test,NULL,8); cout<<hex;
Gibts jetzt auch noch die passende Funktion um eine Dezimalzahl in ein beliebiges Zahlensystem umzurechnen?
-
Oh hab den letzten Parameter von strtol() übersehen (die Funktion ist mir nicht ganz geläufig).
Eine Bitte an dich. Verwende hier im ANSI-C Forum bitte kein cout oder cin. Das ist und bleibt C++ und es ist nicht egal.
-
Ja ok geht klar
Aber wenn jemand noch eine Funktio kennt um Dezimalzahlen in jedes beliebige Zahlensystem zu konvertieren -> nur her damit!
-
könnte man sich doch auch selber schreiben
-
Na ja ich hätte mir auch meine eigene strtoul() schreiben können, aber wozu die mühe falls es doch was fertiges gibt :p
-
Ja falls!