⚡ Cap 04: Expressões, Operadores e Bitwise
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Categorias de Operadores em C
graph LR
A["Aritméticos\n(+ - * / %)"] --> B["Relacionais\n(== != < >)"]
B --> C["Lógicos\n(&& || !)"]
C --> D["Bitwise\n(& | ^ ~ << >>)"]
style A fill:#0284c7,stroke:#38bdf8,color:#ffffff
style B fill:#0d9488,stroke:#2dd4bf,color:#ffffff
style C fill:#059669,stroke:#34d399,color:#ffffff
style D fill:#d97706,stroke:#f59e0b,color:#ffffff
- Módulo
%: Resto da divisão inteira. - Pré/Pós-Incremento:
++x(avalia antes) vsx++(avalia depois).
⚡ Slide 2: Avaliação por Curto-Circuito (Short-Circuit)
&&(AND): Se a primeira condição for0, a segunda não é avaliada.||(OR): Se a primeira condição for1, a segunda não é avaliada.- Segurança de Ponteiros:
if (ptr != NULL && *ptr > 0) // Previne Segmentation Fault!
🔬 Slide 3: Operadores Bit a Bit (Bitwise)
- AND (
&): Filtragem e testes de bits (0b1100 & 0b1010 = 0b1000). - OR (
|): Ativação de bits (0b1100 | 0b0011 = 0b1111). - XOR (
^): Inversão de bits. - Deslocamentos:
x << 1(Multiplica por 2)x >> 1(Divide inteiramente por 2)
🛡️ Slide 4: Precedência & Regras de Segurança (CERT C)
- Parênteses Obrigatórios:
// ❌ Incorreto: if (flags & MASK != 0) -> Avalia (MASK != 0) primeiro! // ✅ Correto: if ((flags & MASK) != 0) - Nunca use atribuição em condicionais: Use
==e compile sempre com-Wall.
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim