Olá Pessoal, tudo bom?
Esse é o penúltimo post relacionado a parte de Operadores no Java. Ele é um post complemento aos operadores de atribuição, pois naquele momento falamos apenas sobre as atribuições com operadores aritméticos. Nessa nova parte iremos complementar com os outros operadores existentes que podem ser utilizados junto com a atribuição no caso de hoje os operadores Bitwise. A décima quinta parte desse artigo se encontra aqui. Confira na continuação desse artigo sobre os operadores de atribuição Bitwise:
Operadores de Atribuição
Forma de você atribuir valores a um determinado endereço de memória representado em uma variável. Maiores detalhes veja aqui.
Combinando com Operadores Bitwise
Outro aspecto do operador de atribuição é que ele pode ser combinado com os operadores Bitwise binários (os unitários não podem ser combinados), pois a operação flag = flag & bitmask, pode ser reescrita como flag &=bitmask.
Operador | Descrição |
---|---|
&= | Operador Bitwise para operações Bitwise do tipo AND |
|= | Operador Bitwise para operações Bitwise do tipo inclusive OR |
^= | Operador Bitwise para operações Bitwise do tipo exclusive OR |
Dessa forma podemos reescrever o código dos posts relacionados aos operadores bitwise da seguinte forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
package br.com.mauda.operadores; public class OperadoresAtribuicao2 { public static void main (String[] args) { //Bitwise AND int bitmask = 0x000F; //Em binario 0000 0000 0000 1111 int flag = 0x2222; //Em binario 0010 0010 0010 0010 // =================== //Em binario 0000 0000 0000 0010 flag &= bitmask; System.out.println("Resultado da operacao bitwise AND: " + flag); //Bitwise Inclusive OR bitmask = 0x000F; //Em binario 0000 0000 0000 1111 flag = 0x2222; //Em binario 0010 0010 0010 0010 // =================== //Em binario 0010 0010 0010 1111 flag |= bitmask; System.out.println("Resultado da operacao bitwise Inclusive OR: " + flag); //Bitwise Exclusive OR bitmask = 0x000F; //Em binario 0000 0000 0000 1111 flag = 0x2222; //Em binario 0010 0010 0010 0010 // =================== //Em binario 0010 0010 0010 1101 flag ^= bitmask; System.out.println("Resultado da operacao bitwise Exclusive OR: " + flag); } } |
Perceba que as linhas grifadas foram alteradas para o novo formato. O resultado final permanece inalterado:
O resultado da execução dessa classe será o seguinte:
1 2 3 |
Resultado da operacao bitwise AND: 2 Resultado da operacao bitwise Inclusive OR: 8751 Resultado da operacao bitwise Exclusive OR: 8749 |
Precedência dos Operadores
Finalizando a tabela de precedência de operadores com os últimos operadores agregados com a atribuição na última posição da tabela:
Ordem | Tipo de Operador | Precedência |
---|---|---|
1 | Pós Fixo | expr++ expr– |
2 | Pré fixo e Unário | ++expr –expr +expr -expr ~ ! |
3 | Multiplicativo | * / % |
4 | Aditivo | + – |
5 | Shift | << >> >>> |
6 | Relacional | > >= <= < instanceof |
7 | Igualdade | == != |
8 | Bitwise AND | & |
9 | Bitwise exclusive OR | ^ |
10 | Bitwise inclusive OR | | |
11 | AND Lógico | && |
12 | OR Lógico | || |
13 | Ternário | ? : |
14 | Atribuição | = += -= *= /= %= &= ^= |= |
finnaly{
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply