Introdução
Na segunda aula de ciências da computação, mergulhamos nos fundamentos que sustentam todo o conhecimento da área. Desde a representação da informação até os primeiros conceitos de algoritmos, cada tópico apresentado é essencial para a formação de um bom profissional. Vimos como os computadores representam dados internamente, como operações lógicas são realizadas em nível de hardware e como podemos descrever soluções de forma estruturada.
Sistemas de Numeração
O sistema binário (base 2) é a espinha dorsal da computação. Utilizando apenas dois dígitos (0 e 1), ele reflete diretamente os estados elétricos de ligado/desligado dos circuitos. Cada dígito binário é chamado de bit (binary digit). Um conjunto de 8 bits forma um byte, capaz de representar 256 valores diferentes (de 0 a 255).
A conversão entre decimal e binário pode ser feita por divisões sucessivas. Exemplo:
25 ÷ 2 = 12 resto 1
12 ÷ 2 = 6 resto 0
6 ÷ 2 = 3 resto 0
3 ÷ 2 = 1 resto 1
1 ÷ 2 = 0 resto 1
→ 25₁₀ = 11001₂
Além do binário, os sistemas octal (base 8) e hexadecimal (base 16) são amplamente usados por oferecerem representações mais compactas. Cada dígito hexadecimal corresponde a 4 bits, facilitando a leitura de endereços de memória e códigos de cores. Por exemplo, o valor binário 11111111₂ pode ser representado como FF₁₆.
Também vimos a representação de números negativos através do complemento de dois, onde o bit mais significativo indica o sinal. Esse método simplifica a implementação de operações aritméticas no hardware.
Lógica Digital
As portas lógicas são os blocos construtivos dos circuitos digitais. Elas implementam operações booleanas básicas. As principais portas são:
- AND: saída 1 somente se todas as entradas forem 1.
- OR: saída 1 se pelo menos uma entrada for 1.
- NOT: inverte o valor da entrada (0→1, 1→0).
- NAND: negação da AND; saída 0 apenas quando todas as entradas são 1.
- NOR: negação da OR; saída 0 se pelo menos uma entrada for 1.
- XOR: saída 1 quando as entradas são diferentes.
Uma tabela verdade descreve o comportamento de uma porta para todas as combinações de entrada. Para uma porta AND de duas entradas, temos:
A B | Q
0 0 | 0
0 1 | 0
1 0 | 0
1 1 | 1
Combinando portas, podemos construir circuitos mais complexos, como somadores, multiplexadores e flip-flops, que formam a base dos processadores.
Álgebra de Boole
Desenvolvida por George Boole, esta álgebra trabalha com valores verdadeiros (1) e falsos (0). Na computação, ela é usada para analisar e simplificar expressões lógicas, reduzindo o número de portas necessárias e otimizando o desempenho dos circuitos.
As leis fundamentais incluem:
- Identidade: A + 0 = A; A · 1 = A
- Complemento: A + A' = 1; A · A' = 0
- 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'
- Absorção: A · (A + B) = A; A + (A · B) = A
Exemplo prático: simplificar S = A·B + A·B'. Aplicando a lei da distributiva, S = A·(B + B') = A·1 = A. Isso mostra como uma expressão pode ser reduzida a uma única variável.
Algoritmos
Um algoritmo é uma sequência finita e bem definida de passos para resolver um problema. São características essenciais: finitude, definição precisa, entrada(s) e saída(s) definidas, e eficácia.
Vejamos um exemplo simples de algoritmo para determinar o maior entre três números:
1. Obter N1, N2, N3
2. Definir maior = N1
3. Se N2 > maior então maior = N2
4. Se N3 > maior então maior = N3
5. Exibir "O maior número é " + maior
Nesta disciplina, usaremos pseudocódigo e diagramas de bloco para modelar soluções antes da implementação em uma linguagem de programação. A noção de complexidade de algoritmos será introduzida mais adiante.
Considerações Finais
Os conceitos abordados nesta aula — sistemas de numeração, portas lógicas, álgebra de Boole e algoritmos — constituem a base para disciplinas posteriores, como arquitetura de computadores, sistemas operacionais, redes e inteligência artificial. Dominá-los é essencial para qualquer pessoa que deseje seguir na área de computação.
Perguntas Frequentes
O que é um bit?
Um bit (binary digit) é a menor unidade de informação em computação. Pode assumir os valores 0 ou 1, representando dois estados distintos (ligado/desligado, verdadeiro/falso).
Qual a diferença entre uma porta NAND e uma NOR?
A porta NAND produz saída 0 somente quando todas as entradas são 1; caso contrário, a saída é 1. Já a porta NOR produz saída 0 quando pelo menos uma entrada é 1, e saída 1 apenas quando todas as entradas são 0. Ambas são consideradas portas universais, pois qualquer outra porta pode ser construída usando apenas NANDs (ou apenas NORs).
Por que usamos hexadecimal em computação?
O sistema hexadecimal (base 16) é mais compacto que o binário e mais fácil de ler para humanos. Um byte (8 bits) pode ser representado por dois dígitos hexadecimais, de 00 a FF. É amplamente utilizado para endereços de memória, códigos de cores e depuração.
Onde encontrar mais anotações?
Confira a lista completa de artigos em /posts ou navegue por temas em /tags.