1. El rango son los valores numéricos máximos y mínimos que toma el tipo de dato.
Ejemplo:
Correcto - > byte myVariable = 127;
Incorrecto -> byte myVariable = 128;
Si se sobrepasa el valor máximo o mínimo permitido para el tipo de dato el editor marcará "possible loss of precision"
El rango depende de la cantidad de bytes asignados a ese tipo de datos.
Ejemplo:
1 byte = 8 bits
8 bits = 256
+------+------------+-------+
| bit | expression | VALUE |
+------+------------+-------+
| 1 | 1^2 | 2 |
| 2 | 2^2 | 4 |
| 3 | 3^2 | 8 |
| 4 | 4^2 | 16 |
| 5 | 5^2 | 35 |
| 6 | 6^2 | 64 |
| 7 | 7^2 | 128 |
| 8 | 8^2 | 256 |
+------+------------+-------+
256 es el rango total, de aquí se toman negativos y positivos incluyendo el cero.
256 / 2 = 128 para negativos.
y quedan 127 para positvos
2. long es la el tamaño en memoria que se le asignó a ese tipo de dato.
3. El formato es el estándar de la IEEE para aritmética.
4. SP y DP se toma para tipos donde el valor puede ser de punto flotante es decir donde hay valores con decimales y se refiere a la exactitud.
Aquí un ejemplo que realicé en la uni.
/* Autor: Darhius929
* Realizar un programa para conocer los valores maximos y minimos de los tipos de dato.
* Tipos: byte, short, char, int, long, float, double.
*/
public class PrimitiveTypeSize {
public static void main
(String[] args
) { }
public static void displaySize
(Class
<?> type,
int size,
Number min,
Number max
) { System.
out.
printf("Tipo:%-6s Tamano:%-2s Minimo:%-20s Maximo:%s\n", type, size, min, max
); }
}