Lógica Binária Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-9
Introdução Lógica binária é a base do sistema computacional. Qualquer operação pode ser representada pela combinação operações lógicas, num sistema computacional. Operações são realizadas sobre bits, portanto, são binárias: NOT, AND, OR, XOR e SHIFT 4-jun-9 Leandro Tonietto 2
Introdução Tabela verdade: Basicamente, é uma tabela onde são mostradas as possíveis combinações de entrada e as respostas ou saídas. Representa desde a combinação mais simples de valores binários, apenas zero ou um; até a representação de valores combinados em bits. Utilizada para demonstrar a reação da aplicação de operações lógicas sobre números binários. 4-jun-9 Leandro Tonietto 3
NOT Operador unário que representa a negação binária de uma informação. É o complemento de um dado. Bit que vira. Que é vira. Exemplo: NOT = NOT = Em linguagens de programação utiliza-se, normalmente, os símbolos! (operações booleanas) ou ~ (operações binárias) Tabela verdade do operador NOT Op Not Op 4-jun-9 Leandro Tonietto 4
AND Operador binário, chamado de conjunção binária. Faz o chamado E lógico. Retorna verdadeiro se o operador E o operador 2 são verdadeiros. Portanto, resultará o AND entre dois bits se, e somente se, ambos forem ; caso contrário, resulta em zero. Exemplo: AND = AND = Em linguagens de programação utiliza-se, normalmente, os símbolos && (operações booleanas) ou & (operações binárias) Tabela verdade do operador AND Op Op2 Op AND Op2 4-jun-9 Leandro Tonietto 5
OR Operador binário, chamado de disjunção binária. Faz o chamado OU lógico. Retorna verdadeiro se o operador OU o operador 2 são verdadeiros. Portanto, resultará o OR entre dois bits se, e somente se, pelo menos um dos operadores for ; caso contrário, resulta em zero. Exemplo: OR = OR = OR = Em linguagens de programação utiliza-se, normalmente, os símbolos (operações booleanas) ou (operações binárias) Tabela verdade do operador OR Op 4-jun-9 Leandro Tonietto 6 Op2 Op OR Op2
XOR Operador binário, chamado de disjunção binária exclusiva. Retorna verdadeiro se o operador e o operador 2 são diferentes. Portanto, resultará o XOR entre dois bits se, e somente se, um dos operadores for e outro for ; caso contrário, resulta em zero. Exemplo: OR = OR = OR = Em linguagens de programação utiliza-se, normalmente, os símbolos ^ (operações booleanas ou binárias) Tabela verdade do operador XOR Op Op2 Op XOR Op2 4-jun-9 Leandro Tonietto 7
Operações com número binários As operações lógicas com números binários deve ser feita bit-a-bit. Só possível fazer operações lógicas sobre números binários. Portanto, é obrigatória a conversão de um número numa base qualquer para base binária. Exemplo: NOT = AND = OR = XOR = 4-jun-9 Leandro Tonietto 8
Operações com número binários Exercícios: Faça as operações lógicas AND, OR e XOR para a seguinte tabela Op Op2 AND OR XOR 4-jun-9 Leandro Tonietto 9
SHIFT Operação binária de deslocamento de BITs Deslocamento de bits é feito um-a-um, no sentido e na quantidade informados. Equivale a multiplicação ou divisão do operando por 2. Com o deslocamento informações são perdidas e informações devem ser inseridas. O que fazer? Depende. Em geral é inserido zero aonde não há informações a serem deslocadas. E os bits perdidos podem ou não serem aproveitados pelo compilador. 4-jun-9 Leandro Tonietto
SHIFT SHIFT DIR 2 = SHIFT ESQ 2 = >> 3 = >> 2 = << 2 = 4-jun-9 Leandro Tonietto
SHIFT Nas linguagens de programação, normalmente é representado pelos sinais: >> (deslocamento para a direita, mantendo o bit de sinal) >> 2 = >> 2 = << (deslocamento para a esquerda, mantendo o bit de sinal) << 2 = << 2 = >>> (deslocamento para direita) >>> 2 = Demonstração em linguagem de programação 4-jun-9 Leandro Tonietto 2
Utilização de operações binárias na programação Diversas operações binárias são feitas por questões de desempenho ou otimização de memória. Por exemplo: Operações com máscara de bits. Codificação de bits para representar várias informações em um byte (utiliza-se operadores OR e AND) Empacotamento de bits, por exemplo, armazenar dados tipo byte em dados tipo int (utiliza-se OR, AND e SHIFT) Multiplicação por uma potência de 2 (basta fazer <<) Divisão por uma potência de 2 (basta fazer >>) Verificar se determinado padrão de bits (um número inteiro) está presente num valor. 4-jun-9 Leandro Tonietto 3
Exercícios Faça o deslocamento de bits: >> 4 << 4 >> 3 << 3 56 >> 3 64 >> 2 56 << 3-55 >>> 3-37 << 2-85 >> 2 Não esqueça que o deslocamento de bits é feito na base binária! 4-jun-9 Leandro Tonietto 4
Referências bibliográficas SILVEIRA, Ricardo Azambuja. Sistemas numéricos e a Representação Interna dos Dados no Computador. Disponível em: http://www.inf.ufsc.br/~silveira/ine562/lami nas/ine562aula3.pdf. Acessado em 8//27. Lógica Binária. Disponível em: http://pt.wikipedia.org/wiki/l%c3%b3gica_bin %C3%Aria. Acessado em: 7//27. 4-jun-9 Leandro Tonietto 5