Wo ist 0xFF denn -128? Im Zweierkomplement (8 bit) wäre 0xFF halt -1. -128 wäre dort 0x80.
Mehr dazu
HIER. Finde das recht gut erklärt, aber gibt sicher auch noch viele andere Seiten, die das Erklären. Ist halt eine bequeme Konvention, um negative Zahlen darzustellen. "Bequem" daher, weil sich Additionen damit ohne weiteres durchführen lassen:
(Annahme von 8 bit Zahlen)
1 - 1 = 0
1 + (-1) = 0
0x01
+ 0xFF
------
0x100
Man nimmt nur so viel vom Ergebnis (von hinten), wieviel man auch zum Rechnen benutzt hat, also in dem Fall 8 bit, und kommt so auf ... 0x00 = 0.
Mit freundlichen Grüßen
Jeoni