logo

C++ אופרטור XOR Bitwise

  • אופרטור Bitwise XOR ידוע גם בשם OR בלעדי
  • זה מסומן באמצעות ה '^'
  • כפי שהשם מתאר, זה עובד על רמת סיביות של האופרנדים.
  • אופרטור Bitwise XOR נכנס לקטגוריה של אופרטורים של Bitwise.
  • באופרטור ה-OR הבלעדי (XOR), נדרשים שני אופרנדים, ושני האופרנדים הללו מופרדים על ידי סמל XOR, כלומר '^'.
  • כדי לקבוע את הפלט או התוצאה שיוצאים לאחר החלת האופרטור XOR על שני אופרנדים, עלינו לעקוב אחר טבלת האמת הלוגית של האופרטור XOR.
  • XOR Truth Table היא הטבלה המתמטית הבנויה באמצעות הלוגיקה המתאימה של האופרטור XOR.
  • ההיגיון המשמש מאחורי האופרטור XOR הוא; בכל פעם שמופעלת פעולת XOR על השניים שונה סיביות של שני אופרנדים, אז התוצאה תמיד תפיק '1', ואם פעולת XOR מופעלת על השניים אותו סיביות של שני אופרנדים ואז התוצאה מייצרת פלט '0'.

טבלת אמת של אופרטור OR (XOR) בלעדי

שיהיו שני אופרנדים; הראשון הוא A והשני הוא B, סך שילובי הקלט שנוצרו על ידי שני האופרנדים הללו יהיו 4. על ידי שימוש בטבלת האמת XOR הבאה, נקבע את הפלט המתאים. התוצאה תיקלט ב-C, כאן C = A ^ B.

בטבלת אמת זו, אנו לוקחים קלט בצורה של ביטים, כלומר 0 ו-1, והפלט ייווצר גם בצורה של ביטים, כלומר 0 ו-1.

שולחן ascii java
C++ אופרטור XOR Bitwise

כאן, בטבלת XOR Truth לעיל, אנו רואים שכאשר ערכי האופרנדים A ו-B שונים, כלומר ( 0, 1 ), ( 1, 0 ), התוצאה שתצא תמיד תהיה 1. וכאשר ה- הערכים של האופרנדים A ו-B זהים, כלומר, ( 0, 0 ), ( 1, 1 ), התוצאה שתצא תמיד תהיה 0.

באופן דומה, בדרך זו, נוכל לשרטט את טבלת האמת עבורו בוליאנית ערכים -

שיהיו שני אופרנדים; הראשון הוא א והשני הוא ב . סך כל השילובים של קלט שנוצרו על ידי שני אופרנדים אלה יהיה 4. על ידי שימוש בטבלת האמת XOR הבאה, נקבע את הפלט המתאים. התוצאה תיקלט ב-C, כאן C = A ^ B.

בטבלת אמת זו, אנו לוקחים קלט בצורה של ערכי אמת, כלומר, נכון (T) ושקר (F). הפלט יופק גם בצורה של ערכי True, כלומר T ו-F.

C++ אופרטור XOR Bitwise

כאן, בטבלת האמת XOR לעיל, אנו רואים שכאשר ערכי האופרנדים A ו-B שונים, כלומר (F, T), (T, F), התוצאה יוצאת תמיד תהיה T. וכאשר ה- הערכים של האופרנדים A ו-B זהים, כלומר, (F, F), (T, T), התוצאה שתצא תהיה תמיד F.

מהטבלאות לעיל, אנו רואים זאת T (נכון) מסומן באחד ו-F (שקר) מסומן ב-0.

שלבים לפתרון כל בעיה נתונה -

  1. האופרנדים שניתנו בבעיה יהיו תמיד בערך העשרוני.
  2. ראשית, עלינו להמיר את הערכים של אופרנדים ל בינארי
  3. לאחר המרה של ערכי האופרנדים במספרים בינאריים, שים את שני האופרנדים אחד על השני.
  4. זכור שלפני החלת פעולת OR (XOR) בלעדית עליהם, אנא בדוק את כמות הספרות בהם.
  5. אם ספירת הספרות אינה תואמת, האפסים הנוספים בקצה השמאלי של האופרנד הקטן מאזנים את ספירת הספרות.
  6. לבסוף, בעזרת טבלת האמת שלמעלה, החל את פעולת ה-XOR על האופרנדים בזה אחר זה, ולקחת ביט אחד בכל פעם להחלת פעולת ה-XOR.
  7. לבסוף, התוצאה מופקת בצורה של פלט.
  8. הפלט שיופק יהיה בצורה בינארית, כעת המר את הצורה הבינארית לצורה עשרונית ורשום את ערך התוצאה.

ביצוע פעולת Bitwise Exclusive OR (XOR) ב-C++

תן לנו להבין ביתר פירוט על ביצוע פעולת XOR ב-C++ בעזרת דוגמאות -

דוגמה 1: מצא את ה-OR הבלעדי של ערכי מספר שלם; 10 ו-14. כמו כן, הסבירו את זה וכתבו את קוד הביצוע ב-C++.

פִּתָרוֹן: הבה נבחן שני משתנים, ' a ' ו' b ', כדי לאחסן את שני האופרנדים המתאימים שניתנו בשאלה לעיל, כלומר, 10 ו-14.

כאן, a = 10 ו-b = 14.

אנו נבצע את השלבים הבאים כדי לגלות את ה-OR הבלעדי של שני האופרנדים הנתונים.

  1. אנו יודעים ש-10 ו-14 הם בצורה עשרונית, וכדי להחיל פעולת XOR בשיטת סיביות, יש צורך להמיר אותה בצורה בינארית.
  2. צורה בינארית 'א', כלומר, 10 הוא '1010' וצורה בינארית של 'b', כלומר, 14 הוא '1110'.
  3. כאן אנו רואים כי ספירת הספרות הבינאריות הקיימות ב-a היא ארבע וספירת הספרות הבינאריות הקיימות ב-b היא גם 4; מכאן שמספר הספרות הבינאריות הקיימות בשני המשתנים זהה וכבר מאוזנת, איננו צריכים להוסיף עוד מספר 0 כדי לאזן אותו.
  4. כעת, הנחת הספרות הבינאריות הקיימות ב-'b' עד לספרות הבינאריות הקיימות ב-'a'.
  5. לבסוף, החלת פעולת ה-XOR בזה אחר זה על הסיביות התואמות ותאמת את הפלט.
  6. הפלט שנוצר לבסוף יהיה בצורה בינארית, כפי שהשאלה למעלה ניתנת בצורה עשרונית, ולכן עלינו להמיר את התוצאה בצורה עשרונית.

הֶסבֵּר:

a = 10 (בצורה עשרונית)

b = 14 (בצורה עשרונית)

כעת, עבור XOR b, עלינו להמיר את a ו-b בצורה בינארית -

a = 1010 (בצורה בינארית)

בדיקות תוכנה וסוגים

b = 1110 (בצורה בינארית)

כעת, החלת פעולת XOR על a ו-b -

a = 1010

b = 1110

---------------

a ^ b = 0100 (בצורה בינארית)

התוצאה של a ^ b היא 0100, שהוא בצורה בינארית.

כעת המרת התוצאה בצורה עשרונית, שהיא 4.

10^14 = 4

הערה: על ידי שימוש בטבלת האמת XOR לעיל, נוצר הפלט של סיביות מתאימות.

כעת נחיל את פעולת ה-XOR בצורה סיבית על 10 ו-14 בשפת C++ ונקבל את התוצאה, כלומר, 4.

מיין רשימת מערך ב-java

קוד C++ לדוגמא למעלה:

 //************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

תְפוּקָה

C++ אופרטור XOR Bitwise

דוגמה 2: מצא את ה-OR הבלעדי של ערכי מספר שלם; 3 ו-15. כמו כן, הסבירו את זה וכתבו את קוד הביצוע ב-C++.

פִּתָרוֹן: הבה נבחן שני משתנים, ' a ' ו' b ', כדי לאחסן את שני האופרנדים המתאימים שניתנו בשאלה לעיל, כלומר, 3 ו-15.

כאן, a = 3 ו- b = 15.

אנו נבצע את השלבים הבאים כדי לגלות את ה-OR הבלעדי של שני האופרנדים הנתונים.

  1. אנו יודעים ש-3 ו-15 הם בצורה עשרונית, וכדי להחיל פעולת XOR סיבית, יש צורך להמיר אותה בצורה בינארית.
  2. צורה בינארית 'a', כלומר, 3 הוא 'אחד עשר' וצורה בינארית של 'b', כלומר, 15 הוא '1111'.
  3. כאן נבחין כי ספירת הספרות הבינאריות הקיימות ב-a היא שתיים וספירת הספרות הבינאריות הקיימות ב-b היא ארבע; מכאן שמספר הספרות הבינאריות הקיימות בשני המשתנים אינו זהה. לפיכך, לא מאוזן, אנו צריכים להוסיף עוד מספר של 0 בצד שמאל של המספר הבינארי התחתון, כלומר, a, שהוא ' אחד עשר' , כדי לאזן אותו.
  4. לאחר האיזון, הערך של a הוא '0011' , ו-b הוא '1111'.
  5. כעת, הנחת הספרות הבינאריות הקיימות ב-'b' עד לספרות הבינאריות הקיימות ב-'a'.
  6. לבסוף, החלת פעולת ה-XOR בזה אחר זה על הסיביות התואמות ותאמת את הפלט.
  7. הפלט שנוצר לבסוף יהיה בצורה בינארית, כפי שהשאלה למעלה ניתנת בצורה עשרונית, ולכן עלינו להמיר את התוצאה בצורה עשרונית.

הֶסבֵּר:

a = 3 (בצורה עשרונית)

b = 15 (בצורה עשרונית)

כעת, עבור XOR b, עלינו להמיר את a ו-b בצורה בינארית -

שם עיר בארה"ב

a = 0011 (בצורה בינארית)

b = 1111 (בצורה בינארית)

כעת, החלת פעולת XOR על a ו-b -

a = 0011

b = 1111

---------------

a ^ b = 1100 (בצורה בינארית)

חיתוך מיתרי ג'אווה

התוצאה של a ^ b היא 1100, שהיא בצורה בינארית.

כעת המרת התוצאה בצורה עשרונית, שהיא 12.

3^15 = 12

הערה: על ידי שימוש בטבלת האמת XOR לעיל, נוצר הפלט של סיביות מתאימות.

כעת נחיל את פעולת ה-XOR בצורה סיבית על 3 ו-15 בשפת C++ ונקבל את התוצאה, כלומר 12.

קוד C++ לדוגמא למעלה:

 //************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

תְפוּקָה

C++ אופרטור XOR Bitwise