Java und vorzeichenlose Datentypen

No signs? No problem!


Alle numerischen Datentypen sind in Java vorzeichenbehaftet. Die bekannten vorzeichenlosen Datentypen „unsigned char“, „unsigned short“, „unsigned int“ und „unsigned long“ wie in C und C++ gibt es in Java nicht.

Alle primitiven Datentypen haben in Java eine feste Speichergröße und Genauigkeit, da sie plattformunabhängig sind. Dagegen sind die Speichergröße und die Genauigkeit der numerischen Datentypen in C oder C++ von der Zielplattform abhängig. In Tabelle 1 findet man mögliche primitive Daten in Java und einen Vergleich zwischen den Java-Datentypen und den C-Datentypen.

Type

Java

C

char

16 Bits (Unicodes)

8 Bits (ASCII)

short

16 Bits

16 Bits

int

32 Bits

16, 32, oder 64 Bits

long

64 Bits

32 oder 64 Bits

float

32 Bits

32 Bits

double

64 Bits

64 Bits

boolean

1 Bit

-

byte

8 Bits

s. char

long long

-

64 Bits (inoffiziell)

long double

-

80, 96 oder 128 Bits

Tabelle 1: Vergleich zwischen Java- und C-Datentypen. Kursiv gesetzt sind die heute gebräuchlichen Speichergrößen

Jeder primitiver Datentyp in Java gehört zu einer korrespondierenden Wrapper-Klasse, die die primitive Variable in einer objektorientierten Hülle kapselt. Für den Typ double z. B. gibt es die Klasse Double, die eine Reihe von Methoden zum Zugriff auf diese primitive Variable bereitstellt. Trotz der großen Anzahl an Netzwerkprotokollen, Dateiformaten und Hardwareschnittstellen, die die vorzeichenlosen Datentypen benutzen, werden sie von Java nicht unterstützt. Die einzige Ausnahme ist der Datentyp char, der ein Unicode-Zeichen mit der Länge 16 Bit darstellt, anstelle des C-char, der ein Byte-ASCII-Zeichen repräsentiert.

Wieso unterstützt Java keine vorzeichenlosen ­Datentypen?

Obwohl es eine Menge von Netzwerkprotokollen gibt, die diese Datentypen benutzen, fragt man sich, wieso Java keine vorzeichenlosen Zahlen bietet. In einem interessanten Interview mit Dennis Ritchie, Bjarne Stroustrup und James Gosling [1] antwortet letzterer – einer der Erfinder der Programmiersprache Java – indirekt auf diese Frage (Kasten „Ausschnitt aus dem Interview mit Ritchie, Stroustrup und Gosling“).

Ausschnitt aus dem Interview mit ­Ritchie, Stroustrup und Gosling

Q: Programmers often talk about the advantages and disadvantages of programming in a “simple language”. What does that phrase mean to you, and is [C/C++/Java] a simple language in your view?

[...]

Gosling: For me as a language designer, which I don‘t really count myself as these days, what “simple” really ended up meaning was could I expect J. Ran...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang