Datentypen in C
-
Hallo,
Ich bin ziemlicher Anfänger was C betrifft (wir lernen das in der Schule),
Ich habe irgendwie ein Problem mit den Datentypen.
Hier mal eine Auflistung,
ich weiss aber nicht, ob das wirklich stimmt:1 Byte hat ja 8 Bit, ist 1 Byte auch ein einzelner Datentyp?
Character, 1 Byte: -128 bis +127
UCharacter: 0 bis +255
Integer: ???
Unsigend Integer: ???
Short, 2 Byte, -32768 bis + 32767
UShort, 2 Byte, 0 Bis + 65535
Long, 4 Byte, -2147483648 bis +2147483467
ULong, 4 Byte, 0 bis 4294967295Float, 4 Byte, [Wertebereich kenne ich], 6 Stellen genauigkeit
Double, 8 Byte, [Wertebereich kenne ich], 15 Stellen genauigkeit
Long Double, 10 Byte [Wertebereich kenne ich], 17 Stellen genauigkeitIch wollte einfach mal fragen, ob das stimmt und wie der Wertebereich von Integer und Unsigned Integer ist.
Gruss 1234User
-
1234user schrieb:
1 Byte hat ja 8 Bit, ist 1 Byte auch ein einzelner Datentyp?
Ein Byte ist ein Byte und kein Datentyp. Ein Datentyp, der z. B. nur ein Byte belegt, ist
char
.1234user schrieb:
Long, 4 Byte, -2147483648 bis +2147483467
-4294967296 bis +4294967295
1234user schrieb:
Ich wollte einfach mal fragen, ob das stimmt und wie der Wertebereich von Integer und Unsigned Integer ist.
Die angegebenen Werte-Bereich sind "Standard-Werte." All diese Werte können zwischen verschiedenen Betriebssystemen, Prozessorplattformen und Compilern abweichen.
Im Normalfall istint
aber mitlong
gleichzusetzen, was den Wertebereich angeht (jedenfalls auf 32 Bit).
-
Danke für die schnelle Antwort
devkid schrieb:
1234user schrieb:
Long, 4 Byte, -2147483648 bis +2147483467
-4294967296 bis +4294967295
Und ULong ist dann einfach von 0 bis +8 589 934 591
nehm ich an,Danke und Gruss
1234User
-
devkid schrieb:
1234user schrieb:
Long, 4 Byte, -2147483648 bis +2147483467
-4294967296 bis +4294967295
Nö.
-
ein byte kann auch ein (selbst definierter) datentyp sein und ist es auch sehr oft.
z.b. unter windows, definiert in der windef.h:typedef unsigned char BYTE;
mfg
-
Diese 4294967296 sind doch für Unsigned Long oder nicht?
Weil man rechnet doch 2^32 (weil 4 Byte *und das gibt doch immer den Wertebereich für Unsigned.
z.B. für Character ist ja 2^8 ja 255, aber das ist ja für UChar.Gruss 1234User
@kannsein;
Ok, danke!
-
^^das ist alles nicht genau festgelegt. char muss mindestens 8 bit haben und int mindestens 16, ansonsten: char <= short <= int <= long. für die bereiche kannste in die 'limits.h' deines compiler schauen.
btw, sogar die bezeichnung 'byte' ist ziemlich willkürlich. 8 bits sind nur am meisten verbreitet. wenn du pingelig bist, musste für 8 bits 'oktett' sagen.
-
volkard schrieb:
devkid schrieb:
1234user schrieb:
Long, 4 Byte, -2147483648 bis +2147483467
-4294967296 bis +4294967295
Nö.
Upps...
-2147483648 bis +2147483647
-
Die minimal geforderten Wertebereiche sind:
signed char: -2^7 -1 ... 2^7 -1 unsigned char: 0 ... 2^8 -1 signed short: -2^15 -1 ... 2^15 -1 unsigned short: 0 ... 2^16 -1 signed int: -2^15 -1 ... 2^15 -1 unsigned int: 0 ... 2^16 -1 signed long: -2^31 -1 ... 2^31 -1 unsigned long: 0 ... 2^32 -1 signed long long: -2^63 -1 ... 2^63 -1 unsigned long long: 0 ... 2^64 -1
-
Danke für die Antworten,
langsam komm ich draus, bei den Datentypen
(sollte ich auch: morgen gibt's test darüber)Danke und Gruss
1234User