Olá Leonardo,
Continuando da explicação do Thiago, esse valor 2 147 483 647
é um limite de tamanho.
Uma variável do tipo int
é tem 32 bits de tamanho, isso significa que quando você salva o valor inteiro 1
o computador vai entender isso em binário:
// 32bits = 32 dígitos (0 ou 1)
// int 1
00000000 00000000 00000000 00000001
// int 2
00000000 00000000 00000000 00000010
E assim por diante, mas já que temos um número definido de bits (32 para int) o maior número que podemos ter é:
// É deixado um bit para indicar se o valor é positivo ou negativo
// Por isso não temos todos como 1
01111111 11111111 11111111 11111111
Esse número em binário acima é o 2 147 483 647
, e por isso que esse é o limite, para guardar um valor maior do que esse (com sinal) precisamos de mais de 32 bits.