1.12.3
Tipos numéricos com sinal
Os tipos numéricos primitivos em Java são com sinal (signed). Isso significa que parte dos bits disponíveis é reservada para representar valores negativos. Como consequência, o intervalo de valores possíveis é dividido entre números negativos e positivos. Por exemplo, um byte utiliza 8 bits, permitindo representar valores de -128 a 127.
Exemplo conceitual
byte small = -128;
int value = 2_147_483_647;
Explicação linha a linha
byte small = -128;
Atribui o menor valor possível a um byte. Metade do intervalo é dedicada a valores negativos.
int value = 2_147_483_647;
Atribui o maior valor possível a um int. Esse limite é determinado pela quantidade de bits reservados ao tipo.
Intervalos dos tipos numéricos primitivos
| Tipo primitivo | Bits | Intervalo mínimo | Intervalo máximo | | —————— | ——– | ————————– | ————————- | | byte | 8 | -128 | 127 | | short | 16 | -32.768 | 32.767 | | int | 32 | -2.147.483.648 | 2.147.483.647 | | long | 64 | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 | | float | 32 | ≈ ±1.4 × 10⁻⁴⁵ | ≈ ±3.4 × 10³⁸ | | double | 64 | ≈ ±4.9 × 10⁻³²⁴ | ≈ ±1.8 × 10³⁰⁸ |
Observação importante
O uso de tipos com sinal permite representar valores negativos de forma eficiente, mas reduz o valor máximo positivo possível. Esse comportamento é padronizado no Java e independe do sistema operacional ou arquitetura, garantindo previsibilidade em qualquer ambiente.