System.out.println((byte) (1.0/0));
System.out.println((short) (1.0/0));
System.out.println((int) (1.0/0));
System.out.println((long) (1.0/0));
Результат:
-1
-1
2147483647
9223372036854775807
В двоичном формате:
1111 1111
1111 1111 1111 1111
0111 1111 1111 1111 1111 1111 1111 1111
0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
Почему отлитие бесконечности до int и длинных целых чисел сохраняет знак бит как "0", а устанавливает бит знака в "1" для байтов и коротких целых чисел?