"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é o objetivo do operador Pipe Equal (=) na programação?

Qual é o objetivo do operador Pipe Equal (=) na programação?

Publicado em 2024-11-07
Navegar:175

What is the Purpose of the Pipe Equal (=) Operator in Programming?

O que é o operador Pipe Equal (=)?

Desenvolvedores que encontraram o operador pipe igual (|=) em código aberto o código da biblioteca pode se perguntar sobre seu significado. Este operador, muitas vezes confundido com uma atribuição lógica, contém uma operação OR bit a bit significativa.

Compreendendo o OR bit a bit

O operador igual à barra vertical |= funciona de forma idêntica a =. No código abaixo, o operador |= combina o valor original dos padrões com a constante DEFAULT_SOUND:

notification.defaults |= Notification.DEFAULT_SOUND;

Esta operação é equivalente a:

notification.defaults = notification.defaults | Notification.DEFAULT_SOUND;

onde | denota o operador OR bit a bit.

OR bit a bit em máscaras de constante

No exemplo fornecido, as constantes DEFAULT_SOUND, DEFAULT_VIBRATE e DEFAULT_LIGHTS são potências de dois:

DEFAULT_SOUND = 1
DEFAULT_VIBRATE = 2 (1 

Isso permite o uso de OR bit a bit para adicionar ou remover sinalizadores. Por exemplo:

int myFlags = DEFAULT_SOUND | DEFAULT_VIBRATE; // 001 | 010 = 011

Adicionando outro sinalizador:

myFlags |= DEFAULT_LIGHTS;

simplesmente anexa um novo sinalizador.

Testando a presença do sinalizador

O operador AND bit a bit (&) testa a presença de um sinalizador:

boolean hasVibrate = (DEFAULT_VIBRATE & myFlags) != 0;

Se o resultado for diferente de zero, o sinalizador está definido.

Declaração de lançamento Este artigo é reproduzido em: 1729671437 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3