Java und vorzeichenlose Datentypen

No signs? No problem!

Zakaria Kasmi


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.

TypeJavaCchar16 Bits (Unicodes)8 Bits (ASCII)short16 Bits16 Bitsint32 Bits16, 32, oder 64 Bitslong64 Bits32 oder 64 Bitsfloat32 Bits32 Bitsdouble64 Bits64 Bitsboolean1 Bit-byte8 Bitss. charlong 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. Random Developer to hold the spec in his head. That definition says that, for instance, Java isn‘t – and in fact a lot of these languages end up with a lot of corner cases, things that nobody really understands. Quiz any C developer about u...

Java und vorzeichenlose Datentypen

No signs? No problem!

Zakaria Kasmi


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.

TypeJavaCchar16 Bits (Unicodes)8 Bits (ASCII)short16 Bits16 Bitsint32 Bits16, 32, oder 64 Bitslong64 Bits32 oder 64 Bitsfloat32 Bits32 Bitsdouble64 Bits64 Bitsboolean1 Bit-byte8 Bitss. charlong 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. Random Developer to hold the spec in his head. That definition says that, for instance, Java isn‘t – and in fact a lot of these languages end up with a lot of corner cases, things that nobody really understands. Quiz any C developer about u...

Neugierig geworden?


    
Loading...

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