byte aus int nach char-Problem
-
hi,
ich möchte aus einem int-wert das niederwertigste byte in ein char speichern:cout<<"sb4:"<<hex<<int(send_buffer.seq_n%0x100)<<dec<<endl; pkt_send.data[7]=int(send_buffer.seq_n%0x100); cout<<"sb4:"<<hex<<int(pkt_send.data[7])<<dec<<endl;dabei ist
"send_buffer.seq_n" ein int und
"pkt_send.data[7]" ein charwährend der Laufzeit ist 'send_buffer.seq_n' mit 1237(0x04d5) belegt und jetzt soll "0xd5" in pkt_send.data[7] landen. was rauskommt ist aber 0xffffffd5.
Das erste cout zeigt auch das richtige an (d5),
aber bei der zweiten Ausgabe halt 0xffffffd5.
wäre schön, wenn mir jemand weiterhelfen könnte.
danke
-
Hm, ich versteh den Syntax von deinem Quellcode zwar nicht ganz aber ich würde das niederwertigste Byte ganz einfach so extrahieren:
short hex = 0x04d5;
char data = hex;(sry C/C++ code rahmen funktioniert bei mir nicht)
data hat (bei mir zumindest) jetzt den wert 0xd5.
-
p.s. 0x04d5 ist ein short-value und kein int-value

-
danke