C++中的按位與&、按位與或|、按位異或^運(yùn)算符詳解
按位與運(yùn)算符:&
語法
expression & expression
備注
表達(dá)式可以是其他“與”表達(dá)式,或(遵循下面所述的類型限制)相等表達(dá)式、關(guān)系表達(dá)式、加法表達(dá)式、乘法表達(dá)式、指向成員的指針表達(dá)式、強(qiáng)制轉(zhuǎn)換表達(dá)式、一元表達(dá)式、后綴表達(dá)式或主表達(dá)式。
按位“與”運(yùn)算符 (&) 會將第一操作數(shù)的每一位與第二操作數(shù)的相應(yīng)位進(jìn)行比較。如果兩個(gè)位均為 1,則對應(yīng)的結(jié)果位將設(shè)置為 1。否則,將對應(yīng)的結(jié)果位設(shè)置為 0。
按位“與”運(yùn)算符的兩個(gè)操作數(shù)必須為整型。 算術(shù)轉(zhuǎn)換中所述的常用算術(shù)轉(zhuǎn)換將應(yīng)用于操作數(shù)。
& 的運(yùn)算符關(guān)鍵字
bitand 運(yùn)算符是 & 的文本等效項(xiàng)。訪問程序中的 bitand 運(yùn)算符的方式有兩種:包括頭文件 iso646.h,或使用 /Za(禁用語言擴(kuò)展)編譯器選項(xiàng)進(jìn)行編譯。
// expre_Bitwise_AND_Operator.cpp // compile with: /EHsc // Demonstrate bitwise AND #include <iostream> using namespace std; int main() { unsigned short a = 0xFFFF; // pattern 1111 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; // prints "aaaa", pattern 1010 ... }
按位與或運(yùn)算符:|
語法
expression | expression
備注
按位“與或”運(yùn)算符 (|) 將第一個(gè)操作數(shù)的每個(gè)位與第二個(gè)操作數(shù)的對應(yīng)位進(jìn)行比較。如果其中一個(gè)位是 1,則將對應(yīng)的結(jié)果位設(shè)置為 1。否則,將對應(yīng)的結(jié)果位設(shè)置為 0。
按位“與或”運(yùn)算符的兩個(gè)操作數(shù)必須為整型。 算術(shù)轉(zhuǎn)換中涵蓋的常用算術(shù)轉(zhuǎn)換適用于操作數(shù)。
| 的運(yùn)算符關(guān)鍵字
bitor 運(yùn)算符是|的文本等效項(xiàng)。訪問程序中的 bitor 運(yùn)算符有兩種方式:包括頭文件 iso646.h,或使用 /Za(禁用語言擴(kuò)展)編譯器選項(xiàng)進(jìn)行編譯。
// expre_Bitwise_Inclusive_OR_Operator.cpp // compile with: /EHsc // Demonstrate bitwise inclusive OR #include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a | b ) << endl; // prints "ffff" pattern 1111 ... }
按位異或運(yùn)算符:^
語法
expression ^ expression
按位“異或”運(yùn)算符 (^) 將第一操作數(shù)的每個(gè)位與第二操作數(shù)的相應(yīng)位進(jìn)行比較。如果一個(gè)位是 0,另一個(gè)位是 1,則相應(yīng)的結(jié)果位將設(shè)置為 1。否則,將對應(yīng)的結(jié)果位設(shè)置為 0。
按位“異或”運(yùn)算符的兩個(gè)操作數(shù)都必須為整型。 算術(shù)轉(zhuǎn)換中涵蓋的常用算術(shù)轉(zhuǎn)換適用于操作數(shù)。
^ 的運(yùn)算符關(guān)鍵字
xor 運(yùn)算符是與 ^ 等效的文本。在您的程序中,可通過兩種方法訪問 xor 運(yùn)算符:包含頭文件 iso646.h,或使用 /Za(禁用語言擴(kuò)展)編譯器選項(xiàng)進(jìn)行編譯。
// expre_Bitwise_Exclusive_OR_Operator.cpp // compile with: /EHsc // Demonstrate bitwise exclusive 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; // prints "aaaa" pattern 1010 ... }
相關(guān)文章
Linux下實(shí)現(xiàn)C++操作Mysql數(shù)據(jù)庫
由于工作需要抽出一周的時(shí)間來研究C/C++訪問各種數(shù)據(jù)庫的方法,并打算封裝一套數(shù)據(jù)庫操作類,現(xiàn)在奉上最簡單的一部分:在Linux下訪問MySQL數(shù)據(jù)庫。2017-05-05C++中實(shí)現(xiàn)fibonacci數(shù)列的幾種方法
本文主要介紹了C++中實(shí)現(xiàn)fibonacci數(shù)列的幾種方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01C語言strlen和sizeof在數(shù)組中的使用詳解
對于 strlen 和 sizeof,相信不少程序員會混淆其功能。雖然從表面上看它們都可以求字符串的長度,但二者卻存在著許多不同之處及本質(zhì)區(qū)別2021-10-10C++多線程實(shí)現(xiàn)TCP服務(wù)器端同時(shí)和多個(gè)客戶端通信
通訊建立后首先由服務(wù)器端發(fā)送消息,客戶端接收消息;接著客戶端發(fā)送消息,服務(wù)器端接收消息,實(shí)現(xiàn)交互發(fā)送消息。本文主要介紹了C++多線程實(shí)現(xiàn)TCP服務(wù)器端同時(shí)和多個(gè)客戶端通信,感興趣的可以了解一下2021-05-05教你如何使用qt quick-PathView實(shí)現(xiàn)好看的home界面
pathView的使用類似與ListView,都需要模型(model)和代理(delegate),只不過pathView多了一個(gè)路徑(path)屬性,顧名思義路徑就是item滑動的路徑,下面給大家分享qt quick-PathView實(shí)現(xiàn)好看的home界面,一起看看吧2021-06-06C語言使用廣度優(yōu)先搜索算法解決迷宮問題(隊(duì)列)
這篇文章主要介紹了C語言使用廣度優(yōu)先搜索算法解決迷宮問題,結(jié)合迷宮問題分析了C語言隊(duì)列廣度優(yōu)先搜索算法的相關(guān)使用技巧,需要的朋友可以參考下2017-09-09C++實(shí)現(xiàn)LeetCode(18.四數(shù)之和)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(18.四數(shù)之和),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07