C++ HEX nach char !??

Wie der Titel schon sagt versuche ich krampfhaft einen hex in ein char zu packen.
Leider ist mir C++ ziemlich fremd... bin eher der java-Typ ;)


Ich versuche:

int zahl = int(Buchstabe);

Dieses kann ich mir per " printf("%X",zahl % 256); " ausgeben

Nun möchte ich aber diese Ausgabe in einem char haben.... also:
char zeichen =?????;

Wie geht das ?
 
Code:
int Zahl = 0x30
char Buchstabe = static_cast<char>(Zahl)
Geht nur bei multibyte;
Du solltest eine Warnung bekommen, weil nen integer ja 4 bytes ist
 
fettes sorry wenn ich nochmal nerve ;)

wie bekomme ich hex im format "0x30" ?
bei meiner methode ( int(Buchstabe)) bekomme ich ganzzahlige werte zurück.
 
Original von Paulchen
fettes sorry wenn ich nochmal nerve ;)

wie bekomme ich hex im format "0x30" ?
bei meiner methode ( int(Buchstabe)) bekomme ich ganzzahlige werte zurück.
Ich verstehe die frage nicht ganz,
in c++ gibst du die Werte als Hex wie folgt aus

"cout << hex << Zahl;"

du kannst die Zahl ja auch einfach als dezimal schreiben, am Ende wird alles
sowieso in hex umgerechnet :P
 
Hallo! Das geht mit sprintf(). Das ist genau wie printf, nur schreibt es in einen String. Dein Problem löst sich wohl mit:
i
-- snip --

char *str;
int zahl = 104; // Deine Integerzahl

str = (char*) malloc(32*sizeof(char)); // Speicher alloziieren (32 Zeichen)
sprint(str, "0x%x", i); // Jetzt hast du die Hexzahl im String drinne
printf("%s \n", str); // Ausgabe: 0x7b

-- snip --

ed: In einen Char kriegst du das sowieso nicht, weil's mehrere Zeichen sind. Das geht nur mit Pointern.

Ich hoffe, das hilft dir.
 
Hallo,
mittlerweile gelöst...
zwar mit sting ... aber passt schon..
habe ebend den rest angepasst ;)

Danke für eure anworten !

Code:
string temp = int2hex(zahl);
strcat(DATEN,temp.c_str());   //DATEN=String[]

string int2hex(int dec)
{
         string hex = "";
         for (int i=2*sizeof(int)-1; i>=0; i--)
         {
                hex+="0123456789ABCDEF"[((dec>>i*4) & 0xF)];
         }
         return hex;
}
 
Zurück
Oben