אופרטורים לוגיים חלק 2
חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 22 מתוך 63.
לאופרטורים לוגיים יש טבלה מיוחדת שנקראת "טבלת אמת", שמציגה מה מחזירה השילוב של אופרטורים לוגיים.
טבלת האמת של האופרטור and (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
הדרך היחידה לקבל 1 (אמת) עבור האופרטור and (&&) היא אם גם a וגם b הם 1 (אמת)
טבלת אמת עבור האופרטור or (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
במקרה הזה, כדי לקבל תוצאה של 1 (true), a או b צריכים להיות 1 (true).
טבלת האמת של האופרטור not (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
כאן, הערך של a מתהפך. אם a הוא 0 (false), אז !a הוא 1 (true)
אתגר
קלעליך להקצות ערכים שלמים למשתנים b1 ו־b2 כך ש־b3 יקבל את הערך 1 (true) בביטוי: int b3 = !((b1 + b2) > (b1 * b2));
הקדש רגע לניתוח התנאי וחשוב אילו ערכים יהפכו אותו לאמיתי.
נסו בעצמכם
#include <stdio.h>
int main() {
// הקלידו את הקוד שלכם למטה
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// אל תשנו את השורה למטה
printf("b3 = %d\n", b3);
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין