O que são operadores bit netwise?

Em um programa de computador, os operadores bitwise são operadores para manipular padrões de bits nas expressões. Bitwise e, ou, exclusivo ou (xor), não, mudança direita e mudança de esquerda são operações comuns. A maioria das linguagens de programação de computadores inclui todos os seis operadores. Eles são frequentemente usados ​​para definir, limpar ou lançar bits individuais em programas que controlam o hardware do computador. Os operadores bitwise também são usados ​​com frequência nos algoritmos de criptografia e compressão de dados. Eles são usados ​​em expressões, assim como os operadores aritméticos como plus ou menos sinais seriam. O operador bitwise e é representado com o ampersand & , ou com o tubo | e xor com o caret ^. Não, também conhecido como operador de complemento, é indicado com um tilde ~ .

O operador de mudança direita usa um carinho duplo apontando para a direita >> . Em contraste,O turno esquerdo é indicado por um caretto duplo apontando para a esquerda <<. O Java inclui outra operação de mudança direita, mostrada com um caretto triplo de apontamento à direita >>> . Não, a mudança direita e a mudança esquerda têm apenas um verdadeiro operando; O segundo valor nas operações de turno é a contagem de bits. Para entender melhor como os operadores bitmodicamente funcionam, um indivíduo pode visualizar seus operandos como números binários. Por exemplo, o operador do complemento vira cada bit de seu único operando para o estado oposto. Um se torna zero e um zero se torna um. O complemento do valor binário de 8 bits 00110101 é 11001010.

O operador e o operador possui dois operandos. Pouco a pouco, uma operação lógica e operação é executada usando um bit correspondente de cada operando. O resultado de cada operação de bits é colocado nessa posição de bit do geralresultado. Por exemplo, o operador e o operador processará o bit 7 de um operando com o bit 7 do outro operando. O resultado será armazenado no bit 7 do resultado geral.

Em um e operação, ambos os bits de operando devem ser aqueles para que o resultado seja um, caso contrário, o resultado é zero. Por exemplo, se os valores binários de 8 bits dos operandos forem 00110101 e 11110000, o resultado será 00110000. Um uso comum do operador e é para zerar bits específicos no resultado. Isso é feito colocando zeros nessas posições de bits em um dos operando.

Em uma operação, ambos os bits de operando devem ser zeros para que o resultado seja zero; Caso contrário, o resultado é um. Um uso comum do operador ou é definir certos bits do resultado para os. Isso é feito colocando -se nessas posições de bits em um dos operando. Para a operação XOR, o resultado é zero se os dois bits de operando forem zero ou se ambos os bits de operando forem um - caso contrário, o resultado é um.

turno esquerdo aO turno direito da ND move os bits no operando esquerdo ou direito pelo número especificado de posições de bits. Uma mudança direita lógica move um zero para o bit mais à esquerda como parte do turno. Uma mudança à direita aritmética copia o bit mais à esquerda - o bit de sinal - antes da mudança para a mesma posição após o turno. A parte original também é deslocada junto com o resto. Qualquer tipo de turno esquerdo move um zero para a parte mais à direita.

Quando um operando é deslocado para a direita, a parte mais à direita antes do turno é simplesmente jogada fora. Da mesma forma, o bit mais à esquerda antes que um turno esquerdo seja descartado. Não se envolve no outro extremo do operando.

As operações de mudança bit são dependentes da linguagem e da implementação. Por exemplo, em c e c ++, >> e << executam mudanças lógicas se o operando for um número inteiro não assinado. Se o operando for um número inteiro assinado, é provável que uma mudança aritmética seja feita. Em Java, todos os operando são considerados assinados e aritmoAs mudanças etics são sempre realizadas com >> e <<. O operador >>> é usado para uma mudança de direita lógica, mas ainda é possível fazer uma mudança à direita aritmética acidentalmente, sem a TypeCasting cuidadosa.

As complicações também podem surgir quando os operando têm comprimentos diferentes ou quando alguns são assinados e outros não assinados. Os operadores bitwee e constantes numéricas no meio de uma expressão complexa não podem ser avaliadas conforme o previsto. Deve -se tomar cuidado para especificar o tamanho e a natureza assinada/não assinada de cada quantidade na expressão. Isso pode ser feito com atribuições cuidadosas de tipcasting ou intermediário a tipos de variáveis ​​específicos no código do programa.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?