Unsigned Int in Java erstellen
Vorzeichenbehaftete Integer werden in der Datenbank als positive und negative Werte im Bereich von -1
bis -128
gespeichert. Im Gegensatz dazu enthalten Ganzzahlen ohne Vorzeichen nur den großen Satz positiver Bereichswerte, keine negativen Werte, von 0
bis 255
. Dies bedeutet, dass ganze Zahlen ohne Vorzeichen niemals negative Werte speichern können.
In Java enthält der Datentyp-Satz explizit kein vorzeichenloses int
. Je nach Anwendungsfall können jedoch andere Datentypen als Ganzzahlen ohne Vorzeichen behandelt werden. Java bietet einen long
-Datentyp, um grössere Werte ohne Vorzeichen zu speichern.
Der Datentyp long
hat eine 64-Bit-Größe und arbeitet intern im Zweier-Komplement. In Java 8 und höheren Versionen kann der Datentyp long
Werte von 0
bis 2^64-1
speichern. Es bietet mehr Datenbereich als der einfache Datentyp int
.
Unten ist der Codeblock, um die Größe und den Unterschied zwischen den beiden Datentypen zu definieren.
public class Main {
public static void main(String[] args) {
System.out.println("Size of int: " + Integer.SIZE + "bits");
System.out.println("Size of int: " + Long.SIZE + "bits");
int signedInt = -2345678;
long unsignedValue = signedInt & 0xffffffffL;
System.out.println(signedInt);
System.out.println(unsignedValue);
}
}
Im obigen Codeblock geben die ersten beiden Anweisungen die Größe der Klassen Integer
und Long
aus. Ein Integer ist ein primitiver Datentyp, der int
-Werte enthält.
Die Größe von int
wird mit 32 Byte gedruckt, die der Wrapper-Klasse Long
mit 64 Byte. Für die Klassen sind statische und finale Variablen definiert, die die Größe der Wrapper-Klasse darstellen.
Neben der print-Anweisung werden zwei lokale oder Klassenvariablen definiert. Die Variable ist vom Datentyp int
und long
. Der in einer Ganzzahl instanziierte Wert ist negativ, da er sowohl negative als auch positive Werte enthält.
In einer long
-Variablen wird der vorzeichenbehaftete Integer mit dem bitweisen &
-Operator operiert. Es funktioniert mit dem Zweierkomplement einer Zahl, die in das Binärformat umgewandelt wurde. Intern wandelt es also zuerst den negativen Wert in binäre Form um. Zwischen den beiden Binärwerten führt es logische &
-Operationen über die beiden Werte aus. Der Operator wird schließlich den negativen Wert in eine positive Zahl umwandeln.
Die Ausgabe der beiden obigen Programmzeilen ist unten dargestellt.
Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn