Hallo,
Es gibt also tatsächlich noch Leute, die den alten Streit "Ist Byte != Octet?" noch nicht kennen? ;-)
Ein Buchstabe (char, also aus ascii) ist garantiert ein Byte (in C)
Falsch! Ein Char ist ein Char und ein Byte ist ein Byte. Manchmal benötigt ein Char ein Byte Speicherplatz.
Wenn Du auf char aus C anspielst:
Aus dem Standard:
3.4
3 NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which
is implementation defined.
3.5
1 character
bit representation that fits in a byte
6.2.5 Types
3 An object declared as type char is large enough to store any member of the basic execution character set.
Aus 3.5 ergibt sich damit, das ein char ein Byte groß sein muß.
Ein Byte sind aber _nicht_ garantiert 8 Bit!
Falsch! Ein Byte sind 8 Bit. Immer!
Kommt drauf an, wo. Siehe auch ISO-C Punkt 3.4. (Und viele andere Sprachen auch, zu faul, alle rauszusuchen)
Das können auch 7 Bit sein, oder 15, oder 189.
Falsch! Ein Char kann 7, 15 oder 189 Bit Speicherplatz benötigen.
Jetzt ist sogar beides richtig ;-)
Das mag in 99.9% der Fälle ohne Belang sein, aber wehe, Du stößt mal auf eine Architektur, die das anders handhabt ;-)
(Wenn Du in C arbeitest: es gibt in limits.h ein Macro CHAR_BITS, da kannst Du das rauslesen)
CHAR-BITS!!! nicht BYTE_BITS
Da char == byte ist, ist auch CHAR_BITS == BYTE_BITS. Kann ein Grund dafür sein, das es kein BYTE_BITS im C-Standard gibt. ;-)
so short
Christoph Zurnieden