In C , selbst die Sprache bestimmt nicht die Darstellung bestimmter Datentypen. Es kann von Maschine zu Maschine variieren, auf eingebetteten Systemen int
kann es 16 Bit breit sein, obwohl es normalerweise 32 Bit ist.
Die einzige Voraussetzung ist, dass short int
<= int
<= long int
nach Größe. Es gibt auch eine Empfehlung, dassint
die die native Kapazität des Prozessors darstellen sollte .
Alle Typen sind signiert. Dasunsigned
Modifikator können Sie das höchste Bit als Teil des Werts verwenden (andernfalls ist es für das Vorzeichenbit reserviert).
Hier ist eine kurze Tabelle der möglichen Werte für die möglichen Datentypen:
width minimum maximum
signed 8 bit -128 +127
signed 16 bit -32 768 +32 767
signed 32 bit -2 147 483 648 +2 147 483 647
signed 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
unsigned 8 bit 0 +255
unsigned 16 bit 0 +65 535
unsigned 32 bit 0 +4 294 967 295
unsigned 64 bit 0 +18 446 744 073 709 551 615
In Java ist die Java - Sprachspezifikation bestimmt die Darstellung der Datentypen.
Die Reihenfolge ist: byte
8 Bit, short
16 Bit, int
32 Bit, long
64 Bit. Alle diese Typen sind signiert , es gibt keine nicht signierten Versionen. Bei Bitmanipulationen werden die Zahlen jedoch so behandelt, als wären sie nicht vorzeichenbehaftet (dh alle Bits werden korrekt behandelt).
Der Zeichendatentyp char
ist 16 Bit breit, ohne Vorzeichen und enthält Zeichen mit UTF-16-Codierung (es ist jedoch möglich, eine char
beliebige vorzeichenlose 16-Bit-Ganzzahl zuzuweisen , die einen ungültigen Zeichencodepunkt darstellt).
width minimum maximum
SIGNED
byte: 8 bit -128 +127
short: 16 bit -32 768 +32 767
int: 32 bit -2 147 483 648 +2 147 483 647
long: 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
UNSIGNED
char 16 bit 0 +65 535