Hallo Christoph,
Zitat Zitat von Christoph2 Beitrag anzeigen
ahhh danke!!
Ich hab aber nur die low variable uint8_t gemacht, die high hab ich int8_t gemacht, sonst hab ich keine vorzeichen bei der int16_t.
Ich denke du hast das mit signed und unsigned noch nicht wirklich verstanden.

Der 8-Bit-Wert 0b11111111 hat unsigned den Wert 255 und signed -1.
Das höchstwertige Bit ist das Vorzeichen 0 = "+" und 1 = "-" (zumindest beim üblichen 2er Komplement)

Wird nun unsigned auf 16-Bit erweitert ergibt dies 0b00000000'11111111, bei signed wird es 0b11111111'11111111

Der 8-Bit-Wert 0b01111111 ist unsigned und signed = 127.
Entsprechend wird unsigned und signed als 16-Bit 0b00000000'01111111

Bei der Erweiterung werden die zusätzlichen Bits bei unsigned immer mit 0en gefüllt.
Bei signed, entsprechend dem Vorzeichen-Bit mit 0en oder 1ern.

MfG Peter(TOO)