Tenho uma duvida, sou novo em Java e gostaria de saber o que siginifica quando
public static void main(String a[]){
int number = 200 << 16;
System.out.println(number);
}
o valor retornado é: 13107200 o que significa?
Tenho uma duvida, sou novo em Java e gostaria de saber o que siginifica quando
public static void main(String a[]){
int number = 200 << 16;
System.out.println(number);
}
o valor retornado é: 13107200 o que significa?
200 decimal = 11001000 binário
11001000 << 16 == 110010000000000000000000
110010000000000000000000 (binário) = 13107200 (decimal)
1) Converta o valor 200 para binário (use a calculadora do Windows em modo científico, para facilitar)200 decimal = 11001000 binário
- Ponha 16 zeros à direita desse número. Se o número de bits passar de 32 (se for um int) ou 64 (se for um long), tire os bits que sobraram à esquerda. Neste caso, temos apenas 24 bits, portanto não precisamos cortar os bits que passam de 32.
11001000 << 16 == 110010000000000000000000
- Converta de volta para decimal:
110010000000000000000000 (binário) = 13107200 (decimal)
Muito Obrigado… Valeuuuu