Ein Byte besteht nicht zwangsläufig aus 8 Bit. Es gab früher auch Maschinen, die z.B. 9 Bit als kleinsten adressierbaren Typ hatten. Des Weiteren gibt es z.B. DSPs, bei denen ein Byte 32 Bit ist. Damit kann ein char auch von 231 .. 231–1 gehen. Der ANSI C Standard schreibt hierbei nämlich nur Folgendes vor: »Alle Speicherobjekte in C müssen durch eine gleichmäßige Sequenz von Bytes mit mindestens 8 Bits Breite darstellbar sein. Ein char, egal ob jetzt signed oder unsigned, belegt exakt ein Byte.« Dies kann bspw. bei einer 36-Bit-Maschine bedeuten, dass ein Byte mit 9, 12, 18 oder 36 Bits definiert ist, da all diese Nummern den gleichen Teiler haben und nicht weniger als 8 Bits breit sind – und somit beide Bedingungen des ANSIC C-Standards einhalten. Mehr zu einem Byte finden Sie hier: http://www.fact-index.com/b/by/byte.html