Short in Byte konvertieren?



  • Hallo,

    ich habe einen C++ Struct in welchem sich 4 Shorts befinden (also 2 Bytes lang) nun benötige ich diese 4 Einträge aber alle als Bytes (also 1 Byte 😉 ), bin mir auch sicher dass das alles da reinpasst - die Zahlen also nicht höher als "256" werden.
    Nun habe ich das mit einem einfachen Cast versucht und da kommt immer eine Schutzverletzung:

    Short test = 12;
    Byte byte = (BYTE) test;
    

    Da muss es doch einen besseren Weg geben? Vermutlich muss ich auch noch Little und Big Endian berücksichtigen, oder?

    Danke euch.
    Tschüss
    Tom



  • nö, das reicht eigentlich so wie dus da geschrieben hast. allerdings ist Short mir nicht bekannt. versuch doch mal short und char.



  • Deine Datentypen kenne ich nicht 😉

    short int shortValue = 128;
    unsigned char byteValue = static_cast <unsigned char> (shortValue);
    

    Achja, unsigned char (also ein Byte) geht nur bis 255. Für 256 brauchst du einen größeren Datentyp...



  • mit dem "Short" ist mir ein Schreibfehler unterlaufen und die Anführugnszeichen bei den "256" sollten das Wissen darum zum Ausdruck bringen - es passen ja 256 Werte hinein, denoch danke :).

    Ich hab jetzt static_cast benutzt und an sich macht er die Konversion auch (hat er auch mit dem C-Cast gemacht) - nur kommt danach eine Schutzverletzung und ih weiß absolut nicht woran die liegt.



  • An der Typumwandlung ziemlich sicher nicht - was machst du denn danach mit dem umgewandelten Wert?


Anmelden zum Antworten