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 char

    wä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


Anmelden zum Antworten