Operadores Lógicos Parte 2
Parte da seção Fundamentals do Journey de C da Coddy — lição 22 de 63.
Os operadores lógicos têm uma tabela especial chamada "Tabela verdade" que mostra o que a combinação de operadores lógicos retorna.
Tabela verdade para o operador and (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
A única maneira de obter um 1 (true) para o operador and (&&) é se ambos a e b forem 1 (true)
Tabela verdade para o operador or (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Neste caso, para obter um resultado 1 (true), a ou b deve ser 1 (true).
Tabela verdade para o operador not (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Aqui, o valor de a é invertido. Se a for 0 (falso), então !a será 1 (verdadeiro)
Desafio
FácilVocê precisa atribuir valores inteiros às variáveis b1 e b2 para que b3 seja avaliado como 1 (verdadeiro) na expressão: int b3 = !((b1 + b2) > (b1 * b2));
Reserve um momento para analisar a condição e pense em quais valores a tornariam verdadeira.
Folha de consulta
As tabelas verdade mostram os resultados dos operadores lógicos:
Operador AND (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Retorna 1 (verdadeiro) apenas quando ambos os operandos são 1 (verdadeiro).
Operador OR (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Retorna 1 (verdadeiro) quando qualquer um dos operandos é 1 (verdadeiro).
Operador NOT (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Inverte o valor: 0 (falso) torna-se 1 (verdadeiro) e vice-versa.
Experimente você mesmo
#include <stdio.h>
int main() {
// Digite seu código abaixo
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// Não altere a linha abaixo
printf("b3 = %d\n", b3);
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
2Variáveis
Tipos de DadosInteiroFloat - DoubleCaracteresBooleanosConstantesFundamentos do printfRegras de Nomenclatura de VariáveisConversão de Tipos Parte 1Conversão de Tipos Parte 2Desafio de Recapitulação3Operadores
Operadores AritméticosOperador de MóduloIncremento/DecrementoOperadores de AtribuiçãoOperadores RelacionaisOperadores Lógicos Parte 1Operadores Lógicos Parte 2Operadores Lógicos Parte 3Desafio de Recapitulação