nochmal Dezimal in Hexadezimal,...
-
ich versuche die 771 dezimal in 0x303 zu konvertieren, was läuft da schief?
stringstream ss; int i = 771; ss << i; char* end; long val=strtol(ss.str().c_str(),&end,16); cout << val;ergibt mir val = 1905
-
Ja, dein Programm macht auch Käse: Du interpretierst die Zeichenfolge "771" als Hexadezimalzahl und wandelst sie dann in eine Dezimalzahl um (und 0x771 = 1905, wie dir jeder Taschenrechner bestätigen kann).
versuch's mal etwa so:
int i=771; cout<<i;//dezimal cout<<hex<<i;//hexadezimal
-
darkstar2000 schrieb:
stringstream ss; int i = 771; ss << i; char* end; long val=strtol(ss.str().c_str(),&end,16); cout << val;Du musst ss ausgeben!