Tipo | Representação mínima | Número máximo | Precisão decimal em dígitos |
---|---|---|---|
char | 1 byte, 28 | 127 | 2 |
unsigned char | 1 byte, 28 | 255 | 2 |
short | 2 bytes, 22*8, 216 | 32 767 | 4 |
unsigned short | 2 bytes, 22*8, 216 | 65 535 | 4 |
long | 4 bytes, 24*8, 232 | ≈ 2⋅109 | 9 |
unsigned long | 4 bytes, 24*8, 232 | ≈ 4⋅109 | 9 |
long long | 8 bytes, 28*8, 264 | ≈ 9⋅1018 | 18 |
unsigned long long | 8 bytes, 28*8, 264 | ≈ 18⋅1018 | 19 |
__int128¹ | 16 bytes, 216*8, 2128 | ≈ 17⋅1037 | 38 |
unsigned __int128¹ | 16 bytes, 216*8, 2128 | ≈ 3⋅1038 | 38 |
Quer números maiores?
- Python tem inteiros de precisão arbitrária
- Java tem BigInteger
- Implemente sua própria biblioteca, ou ache uma solução alternativa!
- O tamanho do
int
em C ou C++ é de 4 bytes em arquiteturas 64 e 32 bits - O padrão do C só garante o mínimo de 2 bytes para um int
- O tamanho do tipo
long
(literal1L
) depende do modelo de dados. LLP64 (Windows) estabelece 32 bits, enquanto que LP64 (Unix) estabelece 64 bits. Tenha cuidado e sempre use1LL
para literais de 64 bits — frequentemente o sistema juíz da maratona da SBC é feito em ambiente Windows (com MinGW), assim como o do Codeforces, enquanto que o seu computador na maratona é Linux. - O tamanho de um
int
em Java é de 2 bytes, use umlong
para ter 4 bytes