Melhor resposta
Diferença P / B curto e longo int
Bem, a diferença é muito pequena, mas pode ser muito importante em alguns casos. Ao programar, o segundo objetivo mais importante (depois de fazer o programa fazer o que deve) é economizar memória para que o programa seja executado o mais rápido possível. É aqui que entra a sua palavra-chave “long”. Long é um número inteiro, mas o inteiro não é exatamente um longo entendeu? Também existe um “short”. Agora, geralmente, eles são referenciados com int depois deles, mas não é obrigatório. O principal a diferença entre eles é o tamanho. Dependendo do computador, mas na maioria dos casos um “curto” tem dois bytes, um “longo” tem quatro bytes e um “int” pode ter dois ou quatro bytes. É importante que você declare isso em programas curto ou longo se você souber exatamente o quão grande o número vai ser e com que frequência ele será modificado para que você possa economizar o máximo de memória possível. Agora, no que diz respeito ao intervalo que depende do tamanho do int se tem dois ou quatro bytes. Aqui está uma tabela para fazer referência a tamanhos e valores.
intervalo de tamanho do tipo
short int 2 bytes -32.768 a 32.767
long int 4 bytes -2.147.483.648 a 2.147.483.647
int (16 bits) 2 bytes -32.768 a 32.767
int (32 bits) 4 bytes -2.147 , 483.648 a 2.147.483.647
Diferença P / B Float e Double
Números de ponto flutuante, também conhecidos como reais números, são usados ao avaliar expressões que requerem precisão fracionária. Por exemplo, cálculos como raiz quadrada ou transcendental como seno e cosseno resultam em um valor cuja precisão requer um tipo de ponto flutuante. Java implementa o conjunto padrão (IEEE-754) de tipos e operadores de ponto flutuante. Existem dois tipos de tipos de ponto flutuante, float e double, que representam números de precisão simples e dupla, respectivamente. Sua largura e intervalos são mostrados aqui:
Largura do nome no intervalo de bits
double 64 1 .7e – 308 a 1.7e + 308
float 32 3 .4e – 038 a 3.4e + 038
Cada um destes os tipos de ponto flutuante são examinados a seguir.
float
O tipo float especifica um valor de precisão única que usa 32 bits de armazenamento. A precisão simples é mais rápida em alguns processadores e ocupa metade do espaço da precisão dupla, mas se tornará imprecisa quando os valores forem muito grandes ou muito pequenos. Variáveis do tipo float são úteis quando você precisa de um componente fracionário, mas não requerem um grande grau de precisão. Por exemplo, float pode ser útil ao representar dólares e centavos.
Aqui estão alguns exemplos de variáveis float declarações:
float hightemp, lowtemp;
double
A precisão dupla, indicada pela palavra-chave double, usa 64 bits para armazenar um valor. A precisão dupla é na verdade mais rápida do que a precisão simples em alguns processadores modernos que foram otimizados para matemática de alta velocidade cálculos. Todas as funções matemáticas transcendentais, como sin (), cos () e sqrt (), retornam valores duplos. Quando você precisa manter a precisão em muitos cálculos iterativos ou está manipulando números de grande valor, o dobro é a melhor escolha .
Aqui está um programa curto que usa variáveis duplas para calcular a área de um círculo:
// Calcule th e área de um círculo.
class Area {
public static void main (String args []) {
double pi, r, a;
r = 10,8; // raio do círculo
pi = 3.1416; // pi, aproximadamente
a = pi * r * r; // compute area
System.out.println (“A área do círculo é” + a);
}
}
Resposta
Como de costume, depende . Os tamanhos exatos de shorts e longos são deixados para o implementador do compilador, que selecionará as representações que melhor se adaptam à arquitetura de destino. É possível (mas improvável) que sizeof(short) == sizeof(int) == sizeof(long)
, o que significa que são todos iguais. A única garantia que você tem é que o tamanho de um short é menor ou igual a o tamanho de um longo. Para tamanhos exatos, use o cabeçalho
; ou para abstrair os detalhes feios, use o std::numeric\_limits
modelo de
.
Raciocínio semelhante se aplica a float e duplo, mas aqui é mais provável que float
represente um número de ponto flutuante de precisão única (4 bytes) e double
será um número de ponto flutuante de precisão dupla (8 bytes).Muito software foi escrito que assume IEEE 754, então os escritores do compilador são menos propensos a se desviar das regras.