• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Operadores no Java – Atribuição de Shift – Parte 3

January 30, 2017 by Mauda Leave a Comment

Conteúdo do Post:
  1. Operadores de Atribuição
  2. Combinando com Operadores Shift
  3. Precedência dos Operadores
  4. finnaly{

Olá Pessoal, tudo bom?

Esse é o ú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 Shift. A décima sexta parte desse artigo se encontra aqui. Confira na continuação desse artigo sobre os operadores de atribuição Shift:

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 Shift

Outro aspecto do operador de atribuição é que ele pode ser combinado com os operadores Shift, pois a operação bitmask = bitmask << flag, pode ser reescrita como bitmask <<= flag.

Operador Descrição
<<= Operador Bit Shift Left para preenchimento de zeros a direita, quantos bits forem informados pelo operador 2
>>= Operador Bit Shift para preenchimento de zeros ou um a esquerda, dependendo do bit mais significativo, quantos bits forem informados pelo operador 2
>>>= Operador Bit Shift para preenchimento de zeros a esquerda, quantos bits forem informados pelo operador 2

Dessa forma podemos reescrever o código dos posts relacionados aos operadores shift da seguinte forma:

Java
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 OperadoresAtribuicao3 {
 
    public static void main (String[] args) {
//Bit Shift Left
int bitmask = 0x000F;
int flag    = 1;
System.out.println("Valor Original do bitmask: " + bitmask);
System.out.println("Valor Original do bitmask em binário: " + Integer.toBinaryString(bitmask));
bitmask <<= flag;
System.out.println("\nResultado da operacao bit shift left 1: " + bitmask);
System.out.println("Resultado da operacao bit shift left 1 em binario: " + Integer.toBinaryString(bitmask));
//Bit Shift Right
bitmask = 0x000F;
flag    = 1;
bitmask >>= flag;
System.out.println("\nResultado da operacao bit shift right 1: " + bitmask);
System.out.println("Resultado da operacao bit shift right 1 em binario: " + Integer.toBinaryString(bitmask));
//Unsigned Bit Shift Right
bitmask = 0x000F;
flag    = 1;
bitmask >>>= flag;
System.out.println("\nResultado da operacao unsigned bit shift right 1: " + bitmask);
System.out.println("Resultado da operacao unsigned bit shift right 1 em binario: " + Integer.toBinaryString(bitmask));
    }
}

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:

Java
1
2
3
4
5
6
7
8
9
10
11
Valor Original do bitmask: 15
Valor Original do bitmask em binário: 1111
 
Resultado da operacao bit shift left 1: 30
Resultado da operacao bit shift left 1 em binario: 11110
 
Resultado da operacao bit shift right 1: 7
Resultado da operacao bit shift right 1 em binario: 111
 
Resultado da operacao unsigned bit shift right 1: 7
Resultado da operacao unsigned bit shift right 1 em binario: 111

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!

Filed Under: Java, Operadores Tagged With: AND, atribuição, bitwise, byte, char, Exclusive OR, Inclusive OR, int, long, short, XOR

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in