Você está aqui: Java ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Como usar o operador de deslocamento de bits para a esquerda (<<) da linguagem JavaQuantidade de visualizações: 8397 vezes |
|
O operador de deslocamento de bits para a esquerda (<<) da linguagem Java é usado quando precisamos mover um padrão de bits para a esquerda uma determinada quantidade de posições, preenchendo com zeros os bits de baixa ordem (bits mais à direita). Comece analizando o seguinte valor binário: a = 00000101 Este valor binário equivale ao valor 5 na base decimal. Se movermos este padrão duas posições para a esquerda, ou seja, aplicando a operação: b = a << 2 o resultado será: a = 00000101 b = 00010100 Note que o valor resultante será 20 na base decimal. Vamos ver isso em Java? Eis o código: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
public class Main {
public static void main(String[] args) {
int a = 5; // 00000101
// exibe o valor original (em inteiro e em bytes)
System.out.println("a = " + obterBits(a) + " (" + a + ")");
// vamos mover o padrão de bits do primeiro valor 2 posições para
// a esquerda
int b = a << 2;
// vamos mostrar o resultado
System.out.println("b = " + obterBits(b) + " (" + b + ")");
}
// método auxiliar que converte um inteiro em sua representação em bits
public static String obterBits(int valor){
int mascara = 1 << 31;
StringBuffer buffer = new StringBuffer(35);
for(int i = 1; i <= 32; i++){
if((valor & mascara) == 0){
buffer.append('0');
}
else{
buffer.append('1');
}
valor <<= 1;
if(i % 8 == 0){
buffer.append(' ');
}
}
return buffer.toString();
}
}
Ao executarmos este código teremos o seguinte resultado: a = 00000000 00000000 00000000 00000101 (5) b = 00000000 00000000 00000000 00010100 (20) Cada troca à esquerda corresponde à multiplicação do valor por 2. Assim: 5 x 2 x 2 = 20. Se a operação fosse: b = a << 3 o resultado seria 00101000 (40), já que 5 x 2 x 2 x 2 = 40. É importante observar que o operador de deslocamento de bits para a esquerda (<<) só pode ser aplicado aos tipos int e long. Se fornecermos argumentos do tipo char, byte ou short, estes serão promovidos para o tipo int antes da operação. O número de posições para a troca dos bits sempre estará na faixa de 0 a 31 se o tipo for int e 0 a 63 se o tipo for long. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
JavaScript - Como acessar as mídias do usuário em JavaScript usando a função getUserMedia() da interface MediaDevices |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







