Recomendado, 2024

Escolha Do Editor

Diferença entre int e long

Os tipos de dados int e long estão entre os dois tipos de dados inteiros descritos em Java. Em Java, os tipos int e long são valores assinados, ve e -ve. Java não suporta int e long types não assinados. A diferença fundamental entre um tipo de dados int e long é a largura de cada tipo. O tipo de dados int tem a largura de 32 bits para a variável do tipo int. Por outro lado, o tipo de dados longo tem a largura de 64 bits para a variável de tipo longo. A tabela de comparação abaixo mostra algumas outras diferenças entre int e long.

Gráfico de comparação

Base para Comparaçãointlongo
BasicO tipo de dados int é de 32 bits.O tipo de dados longo é de 64 bits.
BytesSe contado em bytes, int é de 4 bytes.Se contado em bytes, o comprimento é de 8 bytes.
AlcanceEm Java, o intervalo do tipo int é –2.147.483.648 a 2.147.483.647.Em Java, o intervalo do tipo long é
–9, 223, 372, 036, 854, 775, 808 a 9, 223, 372, 036, 854, 775, 807.
Palavra chaveA palavra-chave usada para declarar uma variável do tipo int é "int".A palavra-chave usada para declarar uma variável de tipo longo é "longa".
MemóriaA memória necessária para armazenar uma variável int é menor em comparação com a longa.A memória necessária para armazenar uma variável longa é maior em comparação com o int.

Definição do tipo int

Um tipo de dados int é um tipo de dados mais comumente usado que contém um valor inteiro. Um valor que uma variável int pode conter não é muito curto nem muito longo. Geralmente, o valor de uma variável int é usado como uma variável de loop que controla o loop ou é usado como uma variável de índice de uma matriz. O tipo de dados byte e short tem um intervalo menor quando comparado com o tipo de dados int, mas eles não podem substituir int, mesmo se o valor de uma variável int for menor. A razão por trás disso é que, quando usamos o tipo de dados byte e short em uma expressão, ao avaliar essa expressão, o tipo de dados byte e short é promovido para int pelo compilador. Então, a partir disso, pode-se dizer que é melhor usar int sempre que um número inteiro for necessário.
Vamos dar uma olhada no uso do tipo de dados int.

 byte a = 70; byte b = 80; int c = a * b; // sem erro. byte d = a + 10; // Erro de tempo de compilação. 

Como você pode observar no código acima, as duas variáveis ​​de byte, a e b, contêm o valor 70 e 80, que é um valor válido de variação de bytes. Mas, o resultado intermediário de um * b; excede o limite do byte. Portanto, o compilador promove automaticamente as variáveis ​​byte, short e char para digitar int, se elas forem usadas em uma expressão. Agora, você pode ver que o resultado de um * b é atribuído a uma variável int que não causa nenhum erro e compila sem problemas porque as variáveis ​​a e b são promovidas para o tipo int e a atribuição do tipo int para o tipo int doesn ' t causa o erro.

Na última linha de código, você pode ver uma expressão, onde o valor 10 é adicionado a uma variável de byte 'a', e seu resultado ainda não excedeu o limite do byte. Mas, a atribuição do resultado intermediário da expressão “a + 10” para a variável de byte 'd', causa um erro de tempo de compilação porque, enquanto a variável de byte de avaliação de expressão 'a' é promovida para o tipo int. E a atribuição do tipo int para digitar byte não é permitida. Portanto, isso causa um erro de tempo de compilação.

Definição de tipo longo

O tipo de dados longo tem o maior intervalo e largura em comparação com os tipos byte, short e int. Em Java, o tipo long é um tipo inteiro assinado de 64 bits. O tipo long é usado onde o tipo int não é tão grande para manter o valor desejado. O intervalo de longitude é –9.223.372.036.854.775.808 a 9.223.372.036.854.775.807, o que é bastante grande, para manter os valores maiores, como grandes números inteiros. Podemos entender o tipo long com um exemplo abaixo.

 class weight {public estático void main (String args []) {int item; int wt_per_item; gramas longos; caixa longa; item = 10000000; // especifica itens numéricos wt_per_item = 10000; // especifica o peso de um item em quilos gramas = wt_item * 1000; // converte peso em grama Caixa = item * gramas; // calcula o peso da caixa em gramas System.out.println ("Number of item" + item); System.out.println ("Peso por item" + wt_per_item + "kilos"); System.out.println ("Peso da caixa em grama" + caixa + "kilos"); }} Número do item 10000000 Peso por item 10000 kilos Peso da caixa em gramas 100000000000000 kilos 

Observe a saída no código acima; o resultado calculado para o peso da caixa inteira contendo caixa contendo 10000000 itens, dos quais por item pesa 10000 quilos. O valor computado para o peso da caixa em gramas, não pode ser retido por uma variável int. Portanto, às vezes, é necessário usar o tipo longo quando valores grandes devem ser computados ou mantidos.

Principais diferenças entre int e long

  1. A diferença básica entre o tipo int e long é da largura deles, onde int é 32 bit e long é 64 bits.
  2. Os tipos int e long quando contados em bytes em vez de bits, o tipo int é 4 bytes e o tipo long é apenas duas vezes, se o tipo int ou seja, 8 bytes.
  3. Em Java, a faixa do tipo int é de –2.147.483.648 a 2.147.483.647, enquanto a faixa de tipo longo é de –9.223.372.036.854.775.808 a 9.223.372.036.854.775.807, o que é muito maior do que o tipo int.
  4. A palavra-chave usada para declarar uma variável do tipo int é “int”. Por outro lado, a palavra-chave usada para declarar a variável do tipo long é “longa”.
  5. Geralmente, a memória necessária para manter o valor do tipo int é menor em comparação com o longo.

Conclusão:

Ao escrever código, se houver necessidade de um valor de intervalo médio, você poderá usar o tipo int, mas quando a saída produzida por qualquer expressão for maior ou os valores maiores estiverem sendo usados ​​para cálculo, a variável de tipo longo deverá ser usada para reter os valores.

Top