Wie komme ich zu dieser ausgabe?
-
hier....
0x12345678 liegt wie folgt im Speicher: 0x78,0x56,0x34,0x12 String ist: ABCD In Buchstaben: A,B,C,Dalso vorgabe war nur long variable und char Zeiger erstellen!
long mit 0x1234567L initialisieren!Ausgabe auf hex umstellen!
String ausgeben
nur wie komm ich auf die ausgeb? zB auf die 0x78,0x56....?
-
long zahl = 0x12345678; unsigned char *p = reinterpret_cast<unsigned char*>(&zahl); cout << hex << "0x" << static_cast<unsigned int>(*p); for (int i = 0; i < 4; ++i, ++p) cout << ",0x" << static_cast<unsigned int>(*p);Gibt die zahl so aus, wie sie im Speicher liegt. Die Reihenfolge hängt offensichtlich von der Endianness des Systems ab, aber das scheint ja beabsichtigt zu sein.
-
Bashar schrieb:
long zahl = 0x12345678; unsigned char *p = reinterpret_cast<unsigned char*>(&zahl); cout << hex << "0x" << static_cast<unsigned int>(*p); for (int i = 0; i < 4; ++i, ++p) cout << ",0x" << static_cast<unsigned int>(*p);ach du schreck

na, so geht's auchlong a = 0x12345678; unsigned char *p = (unsigned char*)&a; printf ("%02x,%02x,%02x,%02x", p[0], p[1], p[2], p[3]);
-
@Bashar
Wenn du noch den Manipulator showbase in den Stream einfügst kannst du dir das "0x" sparen.
-
und wie komm ich auf das abcd????
-
NochneFrage schrieb:
und wie komm ich auf das abcd????
so ähnlich...
- string anlegen 'char *s = "ABCD";
und buchstaben einzeln ausgeben s[0]...s[3]
-
achso...ich dachte aufgrund der aufgabe, das das 0x12345678 irgendwie das ABCD ist??
-
HumeSikkins schrieb:
@Bashar
Wenn du noch den Manipulator showbase in den Stream einfügst kannst du dir das "0x" sparen.Ich kenn mich mit den Manipulatoren überhaupt nicht aus, hab mich schon zusammenreißen müssen, dass ich nicht printf benutze

-
Bashar schrieb:
hab mich schon zusammenreißen müssen, dass ich nicht printf benutze

lass deinem inneren trieb freien lauf
