atoi als hexadezimal
-
Hallo!
Gibt es eine Funktion, die eine Zeichenkette, die eine Hexadezimalzahl darstellt, in den entsprechenden int-Wert umwandelt, so wie es soetwas für Dezimalzahlen gibt?
GIbt es das auch für oktal und binärzahlen?
Gruß, Maxi
-
Mir fällt dazu nur stringstreams ein.
Es gibt sicherlich schönere Lösungen (vllt. boost, kenne ich nicht genau die Lib).
Aber mal ein wenig was zum Spielen:
#include <iostream> #include <sstream> #include <bitset> using namespace std; int main(int argc, char * argv[]) { stringstream t; ios::fmtflags oldFlags = t.flags(); // HEX t.str("0xAD"); t<<hex<<showbase; unsigned long i = 0; t>>i; t.clear(); t.flags(oldFlags); t.str("AE"); t<<hex; t>>i; // Oktal t.clear(); t.flags(oldFlags); t.str("10"); t<<oct; t>>i; // Bin bitset<8> bits; t.clear(); t.str("0101"); t>>bits; i = bits.to_ulong(); return 0; }
-
Danke, funktioniert
-
Maxi schrieb:
Gibt es eine Funktion, die eine Zeichenkette, die eine Hexadezimalzahl darstellt, in den entsprechenden int-Wert umwandelt, so wie es soetwas für Dezimalzahlen gibt?
GIbt es das auch für oktal und binärzahlen?
Warum passt strtol nicht?
-
würde bestimmt auch passen, kannste die Funkiton aber nicht...
Aber sie sieht gut aus, mit Basisangabe usw.... gefällt mir. Werds jetzt aber nciht mehr ändern, funktioniert ja auch so
Gruß, Maxi