Menu
Coddy logo textTech

אופרטורי NOT ו-OR

שיעור 4 מתוך 17 בקורס מניפולציה על ביטים של Coddy.

האופרטור NOT ( ~ )

האופרטור הזה דורש אופרנד אחד בלבד. משתמשים בו כדי להפוך את הביטים של מספר.

x~x
01
10

הטבלה שלפניך מראה מה פירוש הפיכת הביט.

אותו הדבר נעשה לתבניות בינאריות או למספרים. הנה דוגמה-

 

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

האופרטור OR בינארי ( | )

OR סיביתי הוא אופרטור בינארי שפועל על שתי תבניות ביטים באורך שווה. אם שני הביטים במיקום הנבדק בתבניות הם 0, הביט בתבנית הביטים המתקבלת הוא 0; אחרת הוא 1. הסמל '|' מייצג את אופרטור OR.

הטבלה שלהלן מציגה פעולת OR על שני ביטים.

xyx | y
000
011
101
111

נבהיר את הדברים בעזרת דוגמה-

בדוגמה שלמעלה ביצענו פעולת OR על (11)10 ו-(4)10 והתקבלה התוצאה (15)10.

שימוש:

int a = 0;
int b = 1;
>> a | b
OUTPUT: 1
challenge icon

אתגר

קל

יש שתי נורות בחדר. '0' פירושו שהאור כבוי ו-'1' פירושו שהאור דולק. נתונים לך שני מערכים שבהם כל איבר במערך מציין אם הנורות דולקות או כבויות בכל שעה. מצא כמה שעות לא היה אור בחדר.

נסו בעצמכם

#include <iostream>
#include <vector>
using namespace std;

int hoursLightsOff(vector<int> bulb1, vector<int> bulb2) {
    // כתבו כאן את הקוד
}

כל השיעורים ביחידה מניפולציה על ביטים

תרגלו בעצמכם: קומפיילר C++ אונליין