Hoje, no vigésimo dia do nosso curso de Ciências da Computação, mergulhamos nos fundamentos que sustentam toda a computação moderna: sistemas de numeração e álgebra booleana. Esses tópicos são essenciais para entender como os computadores representam e processam informações.
Sistemas de Numeração
Os computadores utilizam o sistema binário (base 2) para representar dados, pois é mais simples e confiável eletronicamente. Vimos como converter um número decimal para binário usando divisões sucessivas:
13 / 2 = 6 resto 1
6 / 2 = 3 resto 0
3 / 2 = 1 resto 1
1 / 2 = 0 resto 1
Resultado: 1101₂
Também estudamos os sistemas octal (base 8) e hexadecimal (base 16), que são úteis para representar longas sequências binárias de forma compacta. A tabela abaixo mostra as equivalências para os primeiros 16 valores:
| Decimal | Binário | Octal | Hexadecimal |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Álgebra Booleana
A álgebra booleana, desenvolvida por George Boole, trabalha com variáveis que assumem apenas dois valores: 0 (falso) e 1 (verdadeiro). As operações básicas são:
- AND (E): retorna 1 apenas se ambas as entradas forem 1. Símbolo: A · B.
- OR (OU): retorna 1 se pelo menos uma entrada for 1. Símbolo: A + B.
- NOT (NÃO): inverte o valor da entrada. Símbolo: ¬A ou A'.
Construímos tabelas verdade para visualizar o comportamento:
| A | B | A·B | A+B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Para o operador NOT:
| A | ¬A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Propriedades da Álgebra Booleana
Algumas propriedades facilitam a simplificação de expressões:
- Comutativa: A·B = B·A; A+B = B+A
- Associativa: (A·B)·C = A·(B·C); (A+B)+C = A+(B+C)
- Distributiva: A·(B+C) = A·B + A·C; A + B·C = (A+B)·(A+C)
- Leis de De Morgan: ¬(A·B) = ¬A + ¬B; ¬(A+B) = ¬A · ¬B
Portas Lógicas
As portas lógicas são implementações físicas das operações booleanas. As principais portas são:
- AND, OR, NOT, NAND (AND negado), NOR (OR negado), XOR (OU exclusivo).
Cada porta possui uma tabela verdade característica. Por exemplo, a porta XOR retorna 1 quando as entradas são diferentes:
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Aplicações Práticas
Combinando portas lógicas, podemos construir circuitos aritméticos simples. O meio somador (half adder) soma dois bits e produz um bit de soma e um bit de carry. Ele é composto por uma porta XOR (soma) e uma porta AND (carry). Esse é o bloco básico para a construção de somadores completos e da Unidade Lógica e Aritmética (ULA) dos processadores.
Além disso, qualquer circuito digital pode ser implementado usando apenas portas NAND ou apenas portas NOR, pois são portas universais.
Pontos Principais
- Computadores usam o sistema binário (base 2) para representação interna.
- Conversão entre bases é feita por divisões sucessivas (decimal→binário) ou agrupamento (binário→octal/hex).
- A álgebra booleana é a matemática dos circuitos digitais, baseada em valores 0/1.
- Operações AND, OR, NOT são fundamentais; suas tabelas verdade definem o comportamento.
- Portas lógicas são a implementação física dessas operações.
- Propriedades como De Morgan permitem simplificar expressões.
Perguntas Frequentes
Por que os computadores usam binário?
Porque é mais fácil distinguir dois estados elétricos (ligado/desligado) do que múltiplos níveis, tornando os circuitos mais confiáveis e tolerantes a ruído.
O que é uma tabela verdade?
É uma tabela que enumera todas as combinações de entrada de uma função lógica e a respectiva saída. Útil para definir e verificar o comportamento de portas e expressões.
Qual a diferença entre as portas NAND e NOR?
NAND é a negação do AND; NOR é a negação do OR. Ambas são universais, ou seja, podem ser usadas para construir qualquer outra porta.
Como simplificar expressões booleanas?
Usando as propriedades algébricas (comutatividade, associatividade, distributividade) e as leis de De Morgan. Também podemos usar mapas de Karnaugh para simplificações mais complexas.
Hoje cobrimos a base que nos permitirá avançar para circuitos combinacionais e sequenciais nas próximas aulas.