Lógica binária
Origem: Wikipédia, a enciclopédia livre.
A lógica binária, ou bitwise operation é a base de todo o cálculo computacional. Na verdade, são estas operações mais básicas que constituem todo o poderio dos computadores. Qualquer operação, por mais complexa que pareça, é traduzida internamente pelo processador para estas operações.
Operações
Índice |
[editar] NOT
O operador unário NOT, ou negação binária resulta no complemento do operando, i.e., será um bit '1' se o operando for '0', e será '0' caso contrário, conforme podemos confirmar pela tabela de verdade, onde A é o bit de entrada e S é o bit-resposta, ou bit de saida:
| A | S | --+-----+-----+ | 0 | 1 | --+-----+-----+ | 1 | 0 | --+-----+-----+
[editar] AND
O operador binário AND, ou conjunção binária devolve um bit 1 sempre que ambos operandos sejam '1', conforme podemos confirmar pela tabela de verdade, onde A e B são bits de entrada e S é o bit-resposta, ou bit de saida:
B | A | S | --+-----+-----+ 0 | 0 | 0 | --+-----+-----+ 0 | 1 | 0 | --+-----+-----+ 1 | 0 | 0 | --+-----+-----+ 1 | 1 | 1 | --+-----+-----+
[editar] OR
O operador binário OR, ou disjunção binária devolve um bit 1 sempre que pelo menos um dos operandos seja '1', conforme podemos confirmar pela tabela de verdade, onde A e B são os bits de entrada e S é o bit-resposta, ou bit de saida:
B | A | S | --+-----+-----+ 0 | 0 | 0 | --+-----+-----+ 0 | 1 | 1 | --+-----+-----+ 1 | 0 | 1 | --+-----+-----+ 1 | 1 | 1 | --+-----+-----+
[editar] XOR
O operador binário XOR, ou disjunção binária exclusiva devolve um bit 1 sempre que apenas um dos operandos é '1', conforme podemos confirmar pela tabela de verdade:
| | 0 | 1 | --+-----+-----+ 0 | 0 | 1 | --+-----+-----+ 1 | 1 | 0 | --+-----+-----+
[editar] Shift
O operador unário de bit shifting, ou deslocamento bit-a-bit, equivale à multiplicação ou divisão por 2 do operando que, ao contrário dos casos anteriores, é um grupo de bits, e consiste no deslocamento para a esquerda ou para a direita do grupo de bits. O bit inserido é sempre 0, e o bit eliminado pode ser opcionalmente utilizado (flag CF dos registos do processador).
( 101011(43) >> 1 ) = 010101[1] ( 101011(43) << 1 ) = [1]010110