Operadores bit a bit na linguagem C

Bitwise Operators C Language



Operadores bit a bit, freqüentemente conhecidos como codificação de nível de bit, foram rejeitados para interpretar dados apenas no nível de bit. Bitwise executa operações em um ou mesmo padrões de bits adicionais e números binários no nível de bits. Estes têm sido usados ​​para acelerar a progressão da estimativa dos cálculos numéricos. Ele consiste em dois números, um dos quais é 0 e o outro é 1. Aqui estão alguns operadores bit a bit que discutiremos em nosso artigo.

Faça login em seu sistema Linux e tente o atalho Ctrl + Alt + T para abrir o terminal do console. Teremos alguns exemplos para elaborar sobre as operações de operadores bit a bit na linguagem C. Vamos elaborar cada operador bit a bit separadamente.







E bit a bit:

O operador bit a bit foi usado para replicar um bit para o resultado se esse bit estiver presente em ambos os operandos mútuos. C ou C ++ requer 2 operandos que executam AND em cada bit desses dois inteiros. E bit a bit resulta em 1 quando ambos os bits têm o valor 1. Portanto, para entender o funcionamento, crie e abra um arquivo do tipo C usando o editor Nano. Para isso, temos que consumir a instrução nano no shell da seguinte maneira:



$nanotest.c



O código para o operador Bitwise AND foi exibido na imagem abaixo. Tudo que você precisa fazer é escrever este código em seu arquivo do editor GNU nano test.c como ele está. Este código tem a biblioteca de cabeçalho stdio.h, sem a qual não podemos fazer a codificação na programação C. Em seguida, criamos um método principal com seu tipo de retorno como inteiro. Na linguagem C, a execução do código é feita através do método principal. Portanto, declaramos duas variáveis ​​de tipo inteiro, x e y, com os valores 35 e 13 de acordo. Depois disso, outra variável inteira foi especificada com zero como seu valor. Estaremos usando as duas primeiras variáveis ​​inteiras e aplicaremos o operador AND bit a bit entre elas. Este trabalho foi feito na próxima linha onde o operador AND foi usado como &, e o valor resultante será armazenado na variável nula z. Em seguida, usamos a instrução print para mostrar o valor resultante na tela do terminal e o método principal é fechado. Salve seu arquivo usando o atalho GNU Ctrl + S e feche o editor nano com Ctrl + X no teclado da máquina de escrever.





Então, é o momento de compilar o código acima após salvar o arquivo. Use a instrução gcc no shell do console enquanto usa o nome de um arquivo como test.c ou qualquer outro nome que você tenha dado ao arquivo e pressione a tecla Enter. Você pode ver que não mostra nenhum erro; isso significa que o código está correto manualmente.



$gcctest.c

Tendo compilado o código, é hora de executá-lo agora. Para este propósito, execute a consulta indicada abaixo no shell. A saída está mostrando 1 como resultado. Isso significa que ambas as nossas variáveis ​​inteiras têm 1 em um de seus bits. É por isso que retorna 1.

$./a.out

OR bit a bit:

Agora, é necessário que o operador OR bit a bit seja elaborado. O operador bit a bit retorna 1 como resultado quando um de seus bits é 1. Se ambos os bits de dois inteiros são 0, então ele retorna 0. Depois de obter todos os bits, haverá um conjunto de bits gerado. Temos que ver qual foi o número formado por esses bits. Portanto, abra o mesmo documento test.c primeiro. Digite e salve o código mostrado abaixo no arquivo GNU usando a tecla Ctrl + S. O código é quase o mesmo do exemplo do operador AND bit a bit acima. Desta vez, acabamos de alterar o valor do inteiro x para 47 e usamos o operador OR, por exemplo, | entre ambas as variáveis. Saia do arquivo para compilar o código.

Depois de executar com sucesso o documento test.c, ele mostra o bit de saída 47.

$./a.out

XOR bit a bit:

O operador bit a bit retorna 1 quando os dois bits de número são diferentes. Portanto, quando os bits forem iguais, o resultado será 0. O sinal do operador ^ representará o operador bit a bit. Então, novamente, abra o documento e escreva o mesmo código antigo no editor de arquivos GNU. Desta vez, estamos usando os operadores ^ em duas variáveis ​​inteiras, e o resultado será armazenado na variável z durante a impressão no terminal.

Compilar e executar o arquivo test.c retorna 34 como resultado. Isso significa que o novo inteiro 34 é gerado após o operador XOR ter sido aplicado a duas variáveis ​​inteiras.

$./a.out

Complemento bit a bit:

Este operador só será aplicado a uma única variável e reverterá o valor do número do bit. Por exemplo, ele mudará o bit 0 para 1 e 1 para 0 bit. Escreva o mesmo código no mesmo arquivo, mas com uma pequena alteração na linha 6. Atribuímos o reverso de x a z.

Compile o arquivo e execute-o. Em C, o resultado do complemento bit a bit foi incrementado com 1 com um sinal negativo.

Operador de mudança à esquerda:

Isso mudará o lugar dos bits até certo ponto. O mesmo código pode ser exibido na imagem anexada abaixo. Neste exemplo, iremos deslocar 2 bits para a esquerda.

A saída mostra o 188 como um valor recém-gerado.

$./a.out

Operador de turno à direita:

Funciona da mesma forma que o deslocamento para a esquerda, mas na direção oposta, conforme mostrado no código abaixo.

Desta vez, temos 11 como saída ao deslocar 2 bits para o lado direito.

$./a.out

Conclusão:

Abordamos todos os 6 operadores bit a bit básicos em nosso código de linguagem C neste artigo. Espero que você consiga o que deseja com nosso guia.