Число битов, используемых для представления значения int, - это константа Integer.SIZE, которая указывается как public static final int SIZE = 32;начиная с Java 1.5.
Интегральные типы byte, short,
int, и long, чьи значения 8-бит, 16 бит, 32-биты и 64-разрядный подписанный дополнительный код комплемент целых чисел, соответственно, и char, значение которых 16-битный целые числа без знака , представляющего UTF-16 код единиц (§3.1).
public static final int SIZE = 32;
начиная с Java 1.5.Ответы:
Да, это определено в спецификации языка Java .
Из Раздела 4.2: Примитивные типы и значения :
И дополнительно из Раздела 4.2.1: Интегральные типы и значения :
источник
int
s - 32 бита. Если вам нужно больше,long
это 64 бита.источник
В Java 8 добавлена поддержка беззнаковых целых чисел.
int
по-прежнему подписан, однако некоторые методы интерпретируют их как беззнаковые.Следующие методы были добавлены к классу Integer в Java 8:
Вот пример использования:
public static void main(String[] args) { int uint = Integer.parseUnsignedInt("4294967295"); System.out.println(uint); // -1 System.out.println(Integer.toUnsignedString(uint)); // 4294967295 }
источник
В качестве дополнения, если длина 64 бита не соответствует вашим требованиям, попробуйте java.math.BigInteger .
Это подходит для ситуаций, когда число выходит за рамки диапазона 64 бит.
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); }
Результат:
Сумма: 18446744073709551614
Разница составляет: -18446744073709551615
Изделие: -85070591730234615856620279821087277056
Частное: 1
источник