int nach Hex
-
Hallo, gibt es im C++ Standart eine Funktion womit ich int nach Hex Konvertieren kann ?
Mit << hex kann man ja nur ausgeben soweit ich weiss.
Folgendes hab ich vor:
#include <iostream> #include <sstream> #include <fstream> using namespace std; int main(int argc, char **argv) { char h[]="\x31"; string str = "31"; int x; stringstream ss; ss << str; ss >> x; // x = 31 // x nach hex .. cout<< static_cast<char>(x)<<endl; // x soll das ausgeben was h ausgibt cout<< h <<endl; system("PAUSE"); } int AsciiStrToInt( string str ) { int int_nop; string nop; nop = str[0]; nop += str[1]; stringstream con; con << nop; con >> int_nop; return int_nop; }
Ok ich könnte hier jetzt x-30 rechnen dann bekomme ich auch 1 ausgeben.
Aber ich will das dass für alle ASCII Werte funktioniert.
-
>
-
Und wie muss man dann den Operator benutzen ?
v = hex>>x; // Falsch
<<><
-
#include <iostream> #include <string> #include <sstream> std::string IntToHex( int n ) { std::stringstream s; s << std::hex << n; return s.str(); } int main() { std::cout << IntToHex( 42 ); }
Wenns nur um Ausgabe geht, kannst du natürlich auch direkt nach cout hexen(http://www.cplusplus.com/reference/iostream/manipulators/hex/).
-
Ich werde aus der Aufgabenstellung nicht schlau. Willst du allen Ziffern ihren ASCII-Wert zuweisen können? Das geht so:
int i = 5; char asciiValue = i + '0';
Wenn du den Integer in die Hexadezimalschreibweise bringen willst, verweise ich dich auf Punkt 8 von http://www.c-plusplus.net/forum/151578
-
Also was genau passieren soll:
( Kann es sein das ich dafür gar nichts in Hex umrechnen muss o_O )#include <iostream> #include <sstream> using namespace std; int main(int argc, char **argv) { int x; int z=0x41; string ss = "41"; stringstream s; s << ss; s >> x; // Geht das auch ohne hier z.b. x+24 zu rechnen ? cout<< x <<endl; // Gibt 41 aus soll aber 65 ausgeben cout<< static_cast<char>(x) <<endl; // Gibt ) aus soll aber A ausgeben cout<< z <<endl; // Gibt 65 aus cout<< static_cast<char>(z) <<endl; // Gibt 65 aus system("PAUSE"); }
-
Hast du dir den Link von Michael E. angesehen?
std::hex
funktioniert auch mitstringstream
, wenn ich mich nicht ganz stark irre.
-
int main() { stringstream s("41"); int x; s >> hex >> x; cout<< x <<endl; cout<< static_cast<char>(x) <<endl; }
-
Ty jetzt funktioniert es.
Ja den Link von Michael E. hatte ich angeschaut.
Aber ich kam nicht auf die Idee hex>> in stringstream zu benutzen.-.-
-
func schrieb:
Aber ich kam nicht auf die Idee hex>> in stringstream zu benutzen.
Du kannst es auch andersrum benutzen:
s << hex << ss;