Créer un entier non signé en Java
Les entiers signés sont stockés dans la base de données sous forme de valeurs positives et négatives allant de -1
à -128
. À l’opposé de cela, les entiers non signés contiennent uniquement le grand ensemble de valeurs de plage positives, aucune valeur négative, de 0
à 255
. Cela signifie que les entiers non signés ne peuvent jamais stocker de valeurs négatives.
En Java, l’ensemble de types de données n’inclut aucun int
non signé explicitement. Cependant, en fonction du cas d’utilisation, d’autres types de données peuvent être traités comme des entiers non signés. Java fournit un type de données long
pour stocker des valeurs non signées plus grandes.
Le type de données long
a une taille de 64 bits et fonctionne sur le complément à deux en interne. Dans Java 8 et versions supérieures, le type de données long
peut stocker des valeurs allant de 0
à 2^64-1
. Il fournit plus de plage de données par rapport au type de données simple int
.
Ci-dessous se trouve le bloc de code pour définir la taille et la différence entre les deux types de données.
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);
}
}
Dans le bloc de code ci-dessus, les deux premières instructions impriment la taille des classes Integer
et Long
. Un entier est un type de données primitif contenant des valeurs int
.
La taille de int
s’imprime à 32 octets et celle de la classe wrapper Long
à 64 octets. Les classes ont des variables statiques et finales définies qui représentent la taille de la classe wrapper.
A côté de l’instruction print, deux variables locales ou de classe sont définies. La variable est du type de données int
et long
. La valeur instanciée dans un entier est négative, car elle contient à la fois des valeurs négatives et positives.
Dans une variable long
, l’entier signé est exploité avec l’opérateur &
au niveau du bit. Il fonctionne sur le complément à deux d’un nombre converti au format binaire. Donc, en interne, il convertit d’abord la valeur négative en forme binaire. Entre les deux valeurs binaires, il effectue des opérations logiques &
sur les deux valeurs. L’opérateur finira par convertir la valeur négative en un nombre positif.
La sortie des deux lignes de programme ci-dessus est illustrée ci-dessous.
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