אופרטורי NOT ו-OR
שיעור 4 מתוך 17 בקורס מניפולציה על ביטים של Coddy.
האופרטור NOT ( ~ )
האופרטור הזה דורש אופרנד אחד בלבד. משתמשים בו כדי להפוך את הביטים של מספר.
| x | ~x |
| 0 | 1 |
| 1 | 0 |
הטבלה שלפניך מראה מה פירוש הפיכת הביט.
אותו הדבר נעשה לתבניות בינאריות או למספרים. הנה דוגמה-
בדוגמה שלמעלה, 'x' מייצג את הייצוג הבינארי של (11)10, וכשמשתמשים באופרטור not עליו, מקבלים (4)10. הפלט עבור פעולה זו ב-C++ יהיה שונה, כי לאחר ביצוע פעולת not, התוצאה נשמרת בייצוג משלים ל-2, בגלל המספר הבינארי המסומן. [(Number)10 מייצג ערך מספרי בבסיס 10)]
האופרטור OR בינארי ( | )
OR סיביתי הוא אופרטור בינארי שפועל על שתי תבניות ביטים באורך שווה. אם שני הביטים במיקום הנבדק בתבניות הם 0, הביט בתבנית הביטים המתקבלת הוא 0; אחרת הוא 1. הסמל '|' מייצג את אופרטור OR.
הטבלה שלהלן מציגה פעולת OR על שני ביטים.
| x | y | x | y |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
נבהיר את הדברים בעזרת דוגמה-

בדוגמה שלמעלה ביצענו פעולת OR על (11)10 ו-(4)10 והתקבלה התוצאה (15)10.
שימוש:
int a = 0;
int b = 1;
>> a | b
OUTPUT: 1אתגר
קליש שתי נורות בחדר. '0' פירושו שהאור כבוי ו-'1' פירושו שהאור דולק. נתונים לך שני מערכים שבהם כל איבר במערך מציין אם הנורות דולקות או כבויות בכל שעה. מצא כמה שעות לא היה אור בחדר.
נסו בעצמכם
#include <iostream>
#include <vector>
using namespace std;
int hoursLightsOff(vector<int> bulb1, vector<int> bulb2) {
// כתבו כאן את הקוד
}כל השיעורים ביחידה מניפולציה על ביטים
תרגלו בעצמכם: קומפיילר C++ אונליין