1. Wenn dein Programm nur positive Werte erwartet, so wird das sichergestellt. Du kannst z. B. einem BYTE keine -1 zuweisen.
Wie das jetzt genau unter C/C++ gehandhabt wird bin ich mir nicht sicher, weil es schon zu lange her ist. Ich glaube mich zu erinnern, dass da eine assertion failed Exception ausgelöst wird...
2. Der Wertebereich bleibt nicht gleich. Wie gesagt, du kannst keine negativen Werte zuweisen. Und außerdem entfällt dir dann die umständichen Bit-Operationen um dann aus einem negativen byte ein vorzeichenloses byte zu kriegen. So kannst du auf simple weise mit einem Integer Werte nicht nur bis 2,4 Milliarden sondern gleich auf fast 5 Mrd. zuweisen (z. B. in der Buchführung, wo es keine negativen Werte gibt sondern diese als Soll/Haben-Buchungen referenziert werden).
3. Unsere Urväter haben sich dieses Konzept ausgedacht noch lange bevor es Windows und die WinAPI gegeben hat. Ich denke da müsste ein noch tieferer Sinn dahinter stecken, sonst könnten wir sagen "So ein Blödsinn die Story mit dem Rad, wir fliegen doch und brauchen dieses Ding gar nicht...". Ich bin leider nicht philosophisch/akademisch genug angehaucht, so dass ich es dir auf andere Weise vermitteln könnte

ThinkPad T61 (in Gedenken) | PureBasic 4.61 B1 (32) | Windows 7 (32SP1) | ArchLinux (32) | Syllable (32)