C++中的按位與&、按位與或|、按位異或^運(yùn)算符詳解
按位與運(yùn)算符:&
語(yǔ)法
expression & expression
備注
表達(dá)式可以是其他“與”表達(dá)式,或(遵循下面所述的類(lèi)型限制)相等表達(dá)式、關(guān)系表達(dá)式、加法表達(dá)式、乘法表達(dá)式、指向成員的指針表達(dá)式、強(qiáng)制轉(zhuǎn)換表達(dá)式、一元表達(dá)式、后綴表達(dá)式或主表達(dá)式。
按位“與”運(yùn)算符 (&) 會(huì)將第一操作數(shù)的每一位與第二操作數(shù)的相應(yīng)位進(jìn)行比較。如果兩個(gè)位均為 1,則對(duì)應(yīng)的結(jié)果位將設(shè)置為 1。否則,將對(duì)應(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)。訪(fǎng)問(wèn)程序中的 bitand 運(yùn)算符的方式有兩種:包括頭文件 iso646.h,或使用 /Za(禁用語(yǔ)言擴(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)算符:|
語(yǔ)法
expression | expression
備注
按位“與或”運(yùn)算符 (|) 將第一個(gè)操作數(shù)的每個(gè)位與第二個(gè)操作數(shù)的對(duì)應(yīng)位進(jìn)行比較。如果其中一個(gè)位是 1,則將對(duì)應(yīng)的結(jié)果位設(shè)置為 1。否則,將對(duì)應(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)。訪(fǎng)問(wèn)程序中的 bitor 運(yùn)算符有兩種方式:包括頭文件 iso646.h,或使用 /Za(禁用語(yǔ)言擴(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)算符:^
語(yǔ)法
expression ^ expression
按位“異或”運(yùn)算符 (^) 將第一操作數(shù)的每個(gè)位與第二操作數(shù)的相應(yīng)位進(jìn)行比較。如果一個(gè)位是 0,另一個(gè)位是 1,則相應(yīng)的結(jié)果位將設(shè)置為 1。否則,將對(duì)應(yīng)的結(jié)果位設(shè)置為 0。
按位“異或”運(yùn)算符的兩個(gè)操作數(shù)都必須為整型。 算術(shù)轉(zhuǎn)換中涵蓋的常用算術(shù)轉(zhuǎn)換適用于操作數(shù)。
^ 的運(yùn)算符關(guān)鍵字
xor 運(yùn)算符是與 ^ 等效的文本。在您的程序中,可通過(guò)兩種方法訪(fǎng)問(wèn) xor 運(yùn)算符:包含頭文件 iso646.h,或使用 /Za(禁用語(yǔ)言擴(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)文章
c++動(dòng)態(tài)內(nèi)存管理詳解(new/delete)
作為一名編程初學(xué)者,通常學(xué)習(xí)中,發(fā)生內(nèi)存錯(cuò)誤是件非常麻煩的事情,下面這篇文章主要給大家介紹了關(guān)于c++動(dòng)態(tài)內(nèi)存管理new/delete的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
C++詳解哈夫曼樹(shù)的概念與實(shí)現(xiàn)步驟
給定N個(gè)權(quán)值作為N個(gè)葉子結(jié)點(diǎn),構(gòu)造一棵二叉樹(shù),若該樹(shù)的帶權(quán)路徑長(zhǎng)度達(dá)到最小,稱(chēng)這樣的二叉樹(shù)為最優(yōu)二叉樹(shù),也稱(chēng)為哈夫曼樹(shù)(Huffman?Tree)。哈夫曼樹(shù)是帶權(quán)路徑長(zhǎng)度最短的樹(shù),權(quán)值較大的結(jié)點(diǎn)離根較近2022-04-04
MFC對(duì)話(huà)框?qū)崿F(xiàn)梯形分頁(yè)
這篇文章主要為大家詳細(xì)介紹了MFC對(duì)話(huà)框?qū)崿F(xiàn)梯形分頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
C語(yǔ)言中字符串常用函數(shù)strcat與strcpy的用法介紹
以下是對(duì)C語(yǔ)言中字符串常用函數(shù)strcat與strcpy的使用方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07
關(guān)于C++多重繼承下虛表結(jié)構(gòu)的問(wèn)題
這篇文章主要介紹了C++ 多重繼承下虛表結(jié)構(gòu)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
C/C++詳解實(shí)現(xiàn)二層轉(zhuǎn)發(fā)
數(shù)據(jù)鏈路層是開(kāi)放系統(tǒng)互連 (OSI) 模型中的第二層,該層用于通過(guò) LAN 等單一網(wǎng)絡(luò)進(jìn)行通信的節(jié)點(diǎn),第二層數(shù)據(jù)包不能從一個(gè)網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)。而二層轉(zhuǎn)發(fā)是根據(jù)報(bào)文的目的MAC直接進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)過(guò)程中不用對(duì)報(bào)文的頭部做任何的修改2022-05-05
C++11生成隨機(jī)數(shù)(random庫(kù))的使用
隨機(jī)數(shù)在很多地方都可以用到,本文主要介紹了C++11生成隨機(jī)數(shù)(random庫(kù))的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
數(shù)據(jù)結(jié)構(gòu)與算法中二叉樹(shù)子結(jié)構(gòu)的詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)與算法中二叉樹(shù)子結(jié)構(gòu)的詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
Qt6.0+vs2019環(huán)境配置的實(shí)現(xiàn)教程
這篇文章主要介紹了Qt6.0+vs2019環(huán)境配置的實(shí)現(xiàn)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

