ตัวดำเนินการ OR ระดับบิตพิเศษ (^) เปรียบเทียบทุกบิตของ} ตัวถูกดำเนินการที่ 1 กับบิตที่สอดคล้องกันของตัวถูกดำเนินการที่สอง ถ้าบิตหนึ่งเป็น 0 และอีกบิตหนึ่งเป็น 1 บิตผลลัพธ์ที่สอดคล้องกันจะถูกตั้งค่าเป็น 1 มิฉะนั้น บิตผลลัพธ์ที่สอดคล้องกันจะถูกตั้งค่าเป็น 0 ตัวถูกดำเนินการทั้งสองตัวเป็นโอเปอเรเตอร์ OR ระดับบิตพิเศษต้องเป็นประเภทอินทิกรัล ตัวอย่างเช่น
ตัวอย่าง
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xFFFF; // pattern 1111 ... cout << hex << ( a ^ b ) << endl; }
ผลลัพธ์
สิ่งนี้ให้ผลลัพธ์ -
aaaa
ซึ่งแสดงถึงรูปแบบ 1010...