Noções básicas de manipulação de bits para C Programming

Um punhado de operadores de programação C fornecer manipulação de dados no nível binário. Os operadores são fáceis de ignorar, mas apenas quando o seu verdadeiro poder e utilidade não são apreciados.

A ~ e! operadores

Dois operadores binários pouco frequentes são o ~ (ou um complemento) eo! (ou não). Eles não têm o charme dos operadores bit a bit lógico, mas eles têm um lugar.

operador de complemento da 1 inverte todos os bits em um valor, transformando a 1 em um 0 e um 0 em uma 1. Por exemplo:

~ 01010011 = 10101100

O ! (NOT) operador afeta todo o valor - todos os bits. Ele muda qualquer valor diferente de zero para 0, eo valor de 0 a 1:

!01010011 = 00000000! 00000000 = 00000001

Zero e 1 são os dois únicos resultados possíveis quando se utiliza o bit a bit! operador.

Tanto o ~ e! operadores estão unário operadores - você simplesmente prefixar um valor para obter os resultados.

OperadorNomeDigitarAçao
Ebit a bitMáscaras pedaços, redefinindo alguns bits a 0 e deixando o restalone
|OUbit a bitDefine os bits, mudando bits específicos 0-1
^XORbit a bitAltera bits a 0 quando correspondência- de outra forma, a 1
~complemento de 1unárioInverte todos os bits
~NÃOunárioAltera valores diferentes de zero para 0- 0 valores, a 1
o binbin () função

Duas declarações explicar o que está acontecendo na função binbin () para torná-lo converter valores em uma string binária:

bin [x] = n 0x80? '1': '0'-n lt; lt; = 1-

A primeira instrução realizará uma máscara com o valor n. Todos, mas o bit mais à esquerda do número é descartada. Se esse bit é ajustado, o que o torna uma condição verdadeira, o carácter 1 é armazenado no array- caso contrário, o carácter 0 é armazenado.

O valor é expresso como 0x80, que é notação hexadecimal, um tipo de forma abreviada de binário. O valor hexadecimal 0x80 é igual a 10000000 binário, que é o e máscara. Se o valor é 16 bits em vez de oito, 0x8000 é usado em vez disso, o que cria uma máscara binária de 16 bits.

A segunda instrução desloca os bits do valor n um ponto para a esquerda. Como os spins de ansa, por meio do valor de n, um outro bit no valor é deslocado para a posição mais à esquerda. Que pouco é avaliado, ea cadeia binária é construído através da inserção de um personagem "1" ou "0".

menu