Lógica binária
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 |
NOT [editar]
O operador unário NOT, ou negação binária resulta no complemento do operando, ou seja, 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 | --+-----+-----+
AND [editar]
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 | +-----+-----+-----+
OR [editar]
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 | +-----+-----+-----+
XOR [editar]
O operador binário XOR, ou disjunção binária exclusiva devolve um bit 1 sempre que o número de operandos iguais a 1 é ímpar, conforme podemos confirmar pela tabela de verdade:
| B | A | S | +-----+-----+-----+ | 0 | 0 | 0 | +-----+-----+-----+ | 1 | 0 | 1 | +-----+-----+-----+ | 0 | 1 | 1 | +-----+-----+-----+ | 1 | 1 | 0 | +-----+-----+-----+
Shift [editar]
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