Você está aqui: JavaScript ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators) |
JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScriptQuantidade de visualizações: 1239 vezes |
O operador de bits & (E/AND sobre bits) da linguagem JavaScript é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0. Para quem gosta de Lógica Matemática, ou a Tabela Verdade da Lógica de Boole, vai se lembrar do conectivo "^", que diz que a proposição resultante da conjunção só será verdadeira quando as proposições simples individuais forem verdadeiras. O operador de bits & do JavaScript é similar ao conectivo "^" da Lógica Proposicional. Vamos analisar os seguintes valores binários: a) 0101 (5 decimal) b) 0100 (4 decimal) Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado: 0101 0100 ---- Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em JavaScript agora. Observe o seguinte trecho de código: <html> <head> <title>Manipulação de Bits em JavaScript</title> </head> <body> <script type="text/javascript"> var a = 5; var b = 4; var c = a & b; // exibe o resultado (em binário e em decimal) document.writeln("a = " + obterBits(a) + " (" + a + ")"); document.writeln("<br>b = " + obterBits(b) + " (" + b + ")"); document.writeln("<br>a & b = " + obterBits(c) + " (" + c + ")"); // função auxiliar que converte um decimal em sua representação em bits function obterBits(valor){ var mascara = 1 << 31; // 10000000 00000000 00000000 00000000 var buffer = ""; // um buffer para guardar os bits dos bytes for(var i = 1; i <= 32; i++){ // compara os bits individuais dos dois valores inteiros if((valor & mascara) == 0){ buffer = buffer + "0"; Ao executar este código teremos o seguinte resultado: a = 00000000 00000000 00000000 00000101 (5) b = 00000000 00000000 00000000 00000100 (4) |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |