Em um simulado que fiz encontrei uma questão usando um dos operadores:
“<<” “>>” e “>>>” :Era mais ou menos assim:
public class TestBit {
public static void main(String[] args) {
int n = 4 << 1;
System.out.println(n);
}
}
A Resposta é: 8.
Procurando nas minhas apostilas achei uma definição para os operadores:
“Translação (bit a bit) à esquerda, direita sinalizada, e direita não sinalizada (o bit de sinal será 0)”
Mais ainda estou confuso. Se alguém puder me explicar como esses operadores funcionam eu agradeço!!!
Deslocamento de bits… isso é o típico exemplo de um escovador de bits :lol:
O esquema funciona deslocando os bits (binários) para a esquerda ou direita, dependendo do operador.
Exemplo:
int n = 4 << 1;
4 decimal em binário equivale à 00000100. << 1 nos diz que vamos deslocar 1 bit para a esquerda, o que nos dá em valor binário 00001000. 00001000 binário equivale à 8 decimal.
Agora neste exemplo,
int n = 4 >> 1;
vai deslocar 1 bit para a direita, o que nos dará 00000010, que em decimal equivale à 2.
Para fazer esse tipo de cálculo você deve conhecer muito bem as regras para converter binário <-> decimal.
Esse assunto cai somente na versão 1.4 da certificação… Se você estiver estudando para a versão 1.5, esse conteúdo não é solicitado