string <-> unsigned long (hex)
-
Hi,
ich hab folgenden Wert:
unsigned long wert = 0xFFEEAACC;und möchte den gerne in einem std::string haben. Also das der Wert so enthalten ist:
std::string wert_als_string = "0xFFEEAACC";Wie geht das? Und wie bekomme ich den Wert als String wieder zurück in einen unsigned long?

-
Da gibt's verschiedene Methoden für. Lies mal in der FAQ (Thema "Zahl nach String und zurück").
-
ja nee ist mir schon klar, deshalb frag ich ja auch. Es handelt sich ja nicht um Zahlen sondern Hexwerte, was ja dort nicht beschrieben ist.
-
Mit Hex-Zahlen geht das fast genauso wie mit Dezimalzahlen.
- Streams haben einen Manipulator, mit dem man Zahlen in Hexadezimal (auf Wunsch auch in Oktal) statt Dezimal ausgeben kann -> Dokumantation STL
- sprintf() und sscanf() verwenden die Formatkennung "%x" für Hex-Zahlen (und "%o" für oktal) und sscanf("%i",&x) sucht sich die Basis anhand der Zahlendarstellung aus
- strtol() kann als letzten Parameter die Zahlenbasis (Hex=16, Okt=8) übergeben bekommen
-
hi,
wärest du noch so mega lieb und könntest ein klitze kleines beispiel machen?
wäre dir dafür mega dankbar
-
ganz klein:
int zahl=0xAFFE,zahl2; char text[10]; sprintf(text,"%x",zahl); //liefert "affe" sprintf(text,"0x%X",zahl); //liefert "0xAFFE" sscanf(text,"%i",text); //liefert 45054 (=0xAFFE)(die nötigen Befehle für die sstream-Variante müsste ich selber erst raussuchen)