O operador bitwise opera com bits e realiza operações gradualmente. Os operadores de turno executam a transição necessária do operador esquerdo para o operador direito. O operador apropriado deve ser positivo. Os bits que foram deixados vazios são substituídos por zero.
Adquirimos um dígito binário e mudamos seu valor para o oponente sempre que revertemos um pouco. Vejamos como trocar bits em c:
Usando o operador bitwise para reverter todo um número inteiro:
Alternar ou reverter o estado de bits existente é considerado um pouco. Nós executamos um loop começando 0 na extensão do número inteiro e trocaria cada bit de cada vez para reverter todos os elementos de valores binários.
Por outro lado, a linguagem de programação C oferece um operador de complemento bit ~ que pode ser usado para essa tarefa. Complemento bit -bowise examina o componente do bit de argumento. Considerando que, se o valor apropriado do operando for 0, ele se converte para 1; ou então, ele atribui a 0. Aqui está um programa C que contém e reverte todos os elementos de um número binário com a ajuda de um operador um bit ~.
#incluir
int main ()
int n, flippnum;
printf ("Digite um número:");
scanf ("%d", & n);
flipednum = ~ n;
printf ("número real = %d (em decimal) \ n", n);
printf ("Valor após lançar os bits = %d (em decimal)", flippnum);
retornar 0;
Neste exemplo, antes de tudo, incluímos a biblioteca . Então chamamos a função principal (). Aqui inicializamos duas variáveis. Uma variável, 'n', possui um tipo de dados inteiro e a outra variável, 'Flippednum', armazena o valor que queremos virar.
Além disso, utilizamos a função printf () para exibir a instrução 'Digite um número'. Então o usuário insere qualquer valor de sua própria escolha. O método scanf () está sendo chamado. Este método é usado para declarar os dados configurados. Aplicamos o comando 'Flippednum' para que o valor inserido pelo usuário esteja sendo invertido. Nós giramos os bits usando o sinal de complemento bit ~.
Na próxima etapa, o método printf () é aplicado primeiro para imprimir o número real e, em seguida, imprime o valor depois de lançar os bits do número inserido. Terminamos o programa por Return 0 Command.
Use o loop para virar os bits:
Nós iteramos através de cada um dos bits do número. Tomamos um número inteiro não assinado, viramos todos.
#incluir
#incluir
não assinado int revbits (não assinado int n)
não assinado int number_of_bits = sizeof (n) * 8;
não assinado int rev_num = 0, j, temp;
para (j = 0; j < NUMBER_OF_BITS; j++)
temp = (n & (1 << j));
se (temp)
Rev_num | = (1 << ((NUMBER_OF_BITS - 1) - j));
return rev_num;
int main ()
não assinado int a = 5;
printf ("%u", revbits (a));
getchar ();
Aqui, vamos iniciar o programa integrando os arquivos de cabeçalho e . Aqui passamos a variável 'não assinada n', que possui um tipo de dados inteiro. Declaramos uma nova variável que armazena o número de bits. Aqui multiplicamos o tamanho do número inteiro por 8. Em seguida, inicializamos uma variável 'Rev_num' que armazena o número invertido.
Também inicializamos uma variável para as variáveis 'para loop' e 'temp' que mantêm temporariamente o valor invertido do número inteiro definido. Além disso, utilizamos um loop. Declaramos uma variável 'J' dentro do loop e aplicamos a condição na variável de que seu valor deve ser menor que vários bits. A última parte do loop for mostra um incremento no valor da variável 'j'. Então usamos a condição "se" na variável 'Temp'. Isso mostra que se 'Rev_n' não for igual ao número de bits, a declaração de retorno retorna o valor de 'Rev_n',
Além disso, a função principal () é aplicada para testar o método acima mencionado. Agora inicializamos a variável 'não assinada' com tipo de dados inteiro. O método printf () agora exibe o valor do número inteiro depois de reverter os bits. No final, empregamos a função getChar (). Aqui, o método getchar () leva apenas um personagem como um argumento.
Use enquanto o loop para virar os bits:
Aqui temos que continuar adicionando os bits de um número inteiro em números reversos até que o número inteiro seja igual a zero. Troque os restos do número reverso depois que o número definido atingir zero.
#incluir
#incluir
não assinado int revbits (não assinado int n)
não assinado int contagem = sizeof (n) * 8 - 2;
não assinado int rev_n = n;
n >> = 2;
enquanto (n)
rev_n = 2;
contar--;
rev_n <<= count;
return rev_n;
int main ()
não assinado int a = 7;
printf ("%u", revbits (a));
getchar ();
No início do programa, incorporamos os arquivos de cabeçalho e . Em seguida, definimos uma função que reverte os bits. A variável 'não assinada n' possui um tipo de dados inteiro; Assim, fornecemos aqui. Criamos uma nova variável para manter a contagem do número de bits. O tamanho do número inteiro é multiplicado por oito neste caso. Em seguida, adquirimos uma variável chamada 'Rev_num' para manter o número invertido.
Além disso, construímos uma variável para o loop while e aplicamos a condição nessa variável. Além disso, utilizamos um loop de tempo. Dentro do loop while, empregamos a condição de que, se o 'Rev_n' for menor ou igual a 2 ou se o 'Rev_n' não for igual ao valor de 'n', diminuímos a contagem. É assim que obtemos o valor de "Rev_n '.
Agora, aplicamos a função principal () e aqui inicializaremos a variável 'não assinada', definindo o valor dessa variável. O tipo de dados desta variável é um número inteiro. Depois de reverter os bits, o método printf () retorna o resultado. Além disso, usamos a função getChar ().
Conclusão:
Neste artigo, examinamos os métodos de virar os bits na linguagem C. Na primeira situação, pegamos qualquer número inteiro do usuário e depois utilizamos o operador bit ~ para reverter todos os bits do número definido. Então observamos como virar os bits usando o e -mail.