Você está aqui: Java ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Como usar o operador de complemento de um de bits (~) da linguagem JavaQuantidade de visualizações: 6604 vezes |
O operador de complemento de um de bits (~) da linguagem Java é usado quando precisamos configurar todos os bits 0 de um valor como 1 e todos os bits 1 como 0, ou seja, este operador permite inverter o sinal do bit. Comece analizando o seguinte valor binário: a = 00000000 00000000 00000000 00010100 (4 bytes = 1 int) Este valor binário equivale ao valor 20 na base decimal. Se aplicarmos o operador de complemento de um, ou seja, aplicando a operação: b = ~a o resultado será: a = 00000000 00000000 00000000 00010100 b = 11111111 11111111 11111111 11101011 Note que o valor resultante será -21 na base decimal. Vamos ver isso em Java? Eis o código: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Main { public static void main(String[] args) { int a = 20; // 00010100 // exibe o valor original (em inteiro e em bytes) System.out.println("a = " + obterBits(a) + " (" + a + ")"); // vamos inverter os bits do valor int b = ~a; // 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 00010100 (20) b = 11111111 11111111 11111111 11101011 (-21) É importante observar que o operador de complemento de um de bits 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. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |