Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

O que seria "caber 32bits"?

Alguém poderia me explicar de uma forma mais clara o parágrafo a baixo?

"A nível de curiosidade, em int cabem 32bits com sinais, isto é, números positivos e negativos. Mais especificamente, cabem de 2 elevado a 31 negativos, a 2 elevado a 31 positivos menos 1, por conta do 0 (zero), o que dá uma quantidade de cerca de 2 bilhões."

4 respostas
32bits com sinal = range que pode ser usando de -2 147 483 648  até  +2 147 483 647
ou pode usar só o range positivo de 0 a +4 294 967 295

Ainda não entendi. Como assim "range que pode ser usando de -2 147 483 648 até +2 147 483 647"

O que significam esses números? São números de caractéres? Eu sou bem novo na área. Poderia ser mais especifico?

Obrigado!

Por exemplo,

uma variável chamada numero do tipo inteiro:

int numero;

essa variável pode receber tanto valores positivos, quanto negativos, certo? Mas existe um limite, o limite é de 4 294 967 295. Ou seja: int numero = 4 294 967 295;

Agora se você colocar 4 294 967 295 + 1, você vai estourar o limite de 32 bits da variável.

Dá uma pesquisada sobre tipos primitivos.

Cara, nossa área exige muita pesquisa. Descubra o nome das coisas e corre atrás pesquisando. Neste caso, você quer entender melhor tipos primitivos em java.

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.