El número de bits utilizados para representar un valor int es la constante Integer.SIZE, que se especifica public static final int SIZE = 32;desde Java 1.5.
Los tipos integrales son byte, short,
int, y long, cuyos valores son de 8 bits, 16 bits, 32 bits y 64 bits en complemento a dos firmados números enteros, respectivamente, y char, cuyos valores son de 16 bits enteros sin signo que representa código UTF-16 unidades (§3.1).
Java 8 ha agregado algo de soporte para enteros sin firmar. La primitiva inttodavía está firmada, sin embargo, algunos métodos los interpretarán como sin firmar.
Los siguientes métodos se agregaron a la clase Integer en Java 8:
public static final int SIZE = 32;
desde Java 1.5.Respuestas:
Sí, está definido en la especificación del lenguaje Java .
De la Sección 4.2: Tipos y valores primitivos :
Y además de la Sección 4.2.1: Tipos y valores integrales :
fuente
int
s son 32 bits. Si necesita más, loslong
s son de 64 bits.fuente
Java 8 ha agregado algo de soporte para enteros sin firmar. La primitiva
int
todavía está firmada, sin embargo, algunos métodos los interpretarán como sin firmar.Los siguientes métodos se agregaron a la clase Integer en Java 8:
Aquí hay un ejemplo de uso:
public static void main(String[] args) { int uint = Integer.parseUnsignedInt("4294967295"); System.out.println(uint); // -1 System.out.println(Integer.toUnsignedString(uint)); // 4294967295 }
fuente
Como complemento, si 64 bits de longitud no cumplen con sus requisitos, pruebe java.math.BigInteger .
Es adecuado para situaciones en las que el número está más allá del rango de 64 bits.
public static void main(String args[]){ String max_long = "9223372036854775807"; String min_long = "-9223372036854775808"; BigInteger b1 = new BigInteger(max_long); BigInteger b2 = new BigInteger(min_long); BigInteger sum = b1.add(b1); BigInteger difference = b2.subtract(b1); BigInteger product = b1.multiply(b2); BigInteger quotient = b1.divide(b1); System.out.println("The sum is: " + sum); System.out.println("The difference is: " + difference); System.out.println("The product is: " + product); System.out.println("The quotient is: " + quotient); }
La salida es:
La suma es: 18446744073709551614
La diferencia es: -18446744073709551615
El producto es: -85070591730234615856620279821087277056
El cociente es: 1
fuente