länge von unsigned char
-
Alles klar danke jetzt hab ich es verstanden
danke euch
-
Die Größe der Variablentypen sind ein Vielfaches von
char
.
Einchar
hat mindestens 8 Bit.
sizeof(char) ist per Default 1.Es gilt
sizeof(char) < sizeof(short) <= sizeof(int) <= sizeof(long)
.Bei den Compiler für MS-DOS und Windows 3.x war ein
int
(meist) 16 Bit.
-
DirkB schrieb:
Es gilt
sizeof(char) < sizeof(short) <= sizeof(int) <= sizeof(long)
.Nein, sizeof(short) ist nicht zwingend größer als sizeof(char).
-
Bashar schrieb:
Nein, sizeof(short) ist nicht zwingend größer als sizeof(char).
Nach K&R muss short mindestens 16 Bit haben, also groesser als char.
Weiss aber nicht, was im aktuellen Standard steht.Gruesse
-
gigg schrieb:
Nach K&R muss short mindestens 16 Bit haben, also groesser als char.
Größer als die Mindestgröße von char. Niemand sagt aber, dass char nicht auch bereits 16 Bit haben kann.
-
dot schrieb:
Größer als die Mindestgröße von char. Niemand sagt aber, dass char nicht auch bereits 16 Bit haben kann.
Das Zwinkern ist unnötig, sowas gibt es wirklich.
-
dot schrieb:
gigg schrieb:
Nach K&R muss short mindestens 16 Bit haben, also groesser als char.
Größer als die Mindestgröße von char. Niemand sagt aber, dass char nicht auch bereits 16 Bit haben kann.
Ok. War immer davon ausgegangen, das char ein Byte ist, weil sizeof(char) 1 ist.
-
gigg schrieb:
Ok. War immer davon ausgegangen, das char ein Byte ist, weil sizeof(char) 1 ist.
Niemand sagt, dass ein Byte immer 8 Bit haben muss.
-
Ein char hat in C mindestens 8 Bit. Ein Byte ist in C das, was ein char belegt, also auch mindestens 8 Bit. Wenn man allgemein von den üblichen 8-Bit-Bytes sprechen will, sagt man am besten Oktett.
-
dot schrieb:
Niemand sagt, dass ein Byte immer 8 Bit haben muss.
Das ist mir jetzt auch neu. Aber ich lerne gern dazu.
-
Mal ein Auszug aus K&R 1.Auflage deutsch.
Anhang A, 2.6 Hardware Eigenschaften
Zu Honywell 6000 char 9 Bit int 36 short 36 long 36 float 36 double 72
Der restlichen Hardwarebeispiele haben 8-Bit char und unterscheiden sich nur in der Größe von int (16- bzw. 32.Bit)
-
DirkB schrieb:
Zu Honywell 6000)
Selbst auf aktuellen Prozessoren ist sowas noch üblich. Beispiel TIs C55x-DSPs:
char, signed char 16 bits unsigned char 16 bits short, signed short 16 bits unsigned short 16 bits int, signed int 16 bits unsigned int 16 bits long, signed long 32 bits unsigned long 32 bits long long 40 bits unsigned long long 40 bits enum 16 bits float 32 bits double 32 bits long double 32 bits pointers (data) small memory mode 16 bits large memory mode 23 bits pointers (function) 24 bits
Quelle: TIs Userguide für den C-Compiler.
http://www.ti.com/litv/pdf/spru281fImmerhin ist es Zweierkomplement.
-
Sind übrigens auch IEC-559-Floats. Double und Long Double scheinen einfach zu Float identisch zu sein. Gibt also nur Single-Precision.