Что не так с моими кодами максимального ограничения двойного типа данных?

#java #types #long-integer

Вопрос:

Как мы знаем, в Java длинный тип данных занимает 8 байт памяти, что означает, что его диапазон должен быть от -(2 63) до (2 63)-1 от мин до макс. Затем я нашел его с помощью кода Java, но не получил соответствующего значения.

 class limit{  public static void main(String[] code){  System.out.println( -(int)Math.pow(2,63));  } }  

ВЫВОД:- -2147483647

Но в решении кода, которое я нашел, там случайно было введено значение максимума длины, которое составляло-9223372036854775808L.

Комментарии:

1. Ну, для начала, ты бросаешь это int вместо long того, чтобы …

2. Почему бы просто не напечатать значение Long. МИНИМАЛЬНОЕ ЗНАЧЕНИЕ?

Ответ №1:

Во-первых, вам нужно решить проблему, в которую вы ее ставите, int а long не .

Далее, вам нужно сделать отрицание перед броском, а не наоборот.

 public static void main(String[] code){  System.out.println((long) (-Math.pow(2,63))); }  

Ответ №2:

Вы можете распечатать значение, используя этот код:

 System.out.println((long)Math.pow(2, 63));  

Вы получаете свой результат в виде:

9223372036854775807

Чтобы получить здесь отрицательное значение, используйте:

 System.out.println((long) (-Math.pow(2,63)));  

Ваш результат будет:

-9223372036854775808