Esta página também está disponível em outros 2 idiomas.

|=

[Compound Operators]

Descrição

O operador de atribuição composta bitwise OU |= é frequentemente usado com uma variável e uma constante para "setar" (mudar pra 1) bits particulares em uma variável.

Uma revisão do operador bitwise OU |:

0  0  1  1    operando1
0  1  0  1    operando2
----------
0  1  1  1    (operando1 | operando2) - resultado retornado

Sintaxe

x |= y; // equivalente a x = x | y;

Parâmetros

x: variável. Tipos de dados permitidos: char, int, long
y: variável ou constante. Tipos de dados permitidos: char, int, long

Código de Exemplo

Bits que são operados através do OU com 0 não são mudados, então se meuByte é uma variável byte:

meuByte | B00000000 = meuByte;

Bits que são operados através do OU com 1 são mudados para 1, então:

meuByte | B11111111 = B11111111;

Notas e Advertências

Porque estamos lidando com bits em um operador bitwise, é conveniente usar o modificador binário com constantes na representação. Os números ainda são os mesmos em outras representações, só não são tão fáceis de entender. Também, B00000000 é mostrado para claridade, mas zero em qualquer outro formato é zero.

Consequentemente - para setar os bits 0 e 1 de um variável, ao mesmo tempo deixando o resto da variável intocado, useo o operador de atribuição por bitwise OU (|=) com a constante B00000011

1  0  1  0  1  0  1  0    variável
0  0  0  0  0  0  1  1    máscara
----------------------
1  0  1  0  1  0  1  1
bits intactos
                 bits mudados para 1

Abaixo a mesma representação com os bits da variável substituidos pelo símbolo x

x  x  x  x  x  x  x  x    variável
0  0  0  0  0  0  1  1    máscara
----------------------
x  x  x  x  x  x  1  1
bits intactos
                 bits mudados para 1

Então:

meuByte = B10101010;
meuByte |= B00000011; // igual a B10101011;

Ver Também

LINGUAGEM | Bitwise OU