Crear un Int sin signo en Java

Rashmi Patidar 12 octubre 2023
Crear un Int sin signo en Java

Los enteros con signo se almacenan en la base de datos en rangos de valores positivos y negativos, de -1 a -128. Contrario a eso, los enteros sin signo contienen el gran conjunto de valores de rango positivo solamente, sin valores negativos, de 0 a 255. Significa que los enteros sin signo nunca pueden almacenar valores negativos.

En Java, el conjunto de tipos de datos no incluye explícitamente ningún int sin signo. Sin embargo, según el caso de uso, otros tipos de datos se pueden tratar como enteros sin signo. Java proporciona un tipo de datos long para almacenar valores sin signo más grandes.

El tipo de datos long tiene un tamaño de 64 bits y funciona internamente en complemento a dos. En Java 8 y versiones superiores, el tipo de datos long puede almacenar valores que van desde 0 a 2^64-1. Proporciona más rango de datos en comparación con el tipo de datos simple int.

A continuación se muestra el bloque de código para definir el tamaño y la diferencia entre los dos tipos de datos.

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);
  }
}

En el bloque de código anterior, las dos primeras declaraciones imprimen el tamaño de las clases Integer y Long. Un entero es un tipo de datos primitivo para contener valores int.

El tamaño de int se imprime en 32 bytes, y el de la clase contenedora Long se imprime en 64 bytes. Las clases tienen definidas variables estáticas y finales que representan el tamaño de la clase contenedora.

Junto a la declaración de impresión, se definen dos variables locales o de clase. La variable es de los tipos de datos int y long. El valor instanciado en un número entero es negativo, ya que contiene valores tanto negativos como positivos.

En una variable long, el entero con signo se opera con el operador Bitwise &. Funciona en complemento a dos de un número convertido a formato binario. Entonces, internamente, primero convierte el valor negativo en forma binaria. Entre los dos valores binarios, realiza operaciones lógicas & sobre los dos valores. El operador eventualmente convertirá el valor negativo en un número positivo.

El resultado de las dos líneas de programa anteriores se muestra a continuación.

Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
Rashmi Patidar avatar Rashmi Patidar avatar

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

Artículo relacionado - Java Integer