C++編程語言在開發人員眼中不僅僅是C語言的升級版本。其在功能上的擴展有更大的改進。我們今天就可以通過對C++位操作的基本概念的解析來充分掌握這方面的知識。並進一步加深對C++語言的了解程度。
C++位操作包括兩種:傳統的C語言方式的位操作和C++中利用bitset容器的位操作
1.C++位操作基本操作:
使用一個unsigned int變量來作為位容器。
2.C++位操作操作符:
| 按位或操作符:result=exp1|exp2;當exp1和exp2中對應位中至少有一個為1時,result中對應位為1,否則為0。
& 按位與操作符::result=exp1&exp2;當exp1和exp2中對應位全為1時,result中對應位為1,否則為0。
^ 按位異或或操作符:result=exp1^exp2;當exp1和exp2中對應位不相同時,result中對應位為1,否則為0。
~ 反轉操作符:將位容器中的所有位都反轉,1變為0,0變為1。
<< 按位左移操作符:exp<<n,將容器中所有的位向左移n位,空出的位用0填充。
>> 按位右移操作符:exp>>n,將容器中所有的位向右移n位,空出的位用0填充。
|=,&=,^= 分別對應|&^三種操作符的復合操作符。
3.C++位操作常用操作
這裡我們假設有一個result的unsigned int變量用來儲存32個學生的成績通過和不通過分別用0和1),這樣result就有33位result從右至左,從0開始計算位數,在這個例子中0位被浪費)。
(a) 將第27位設置為及格設作1)其他位不變:
result|=(1<<27) //任意的位值與1作按位或操作其值為1,而與0作按位與操作其值不變
(b) 將第27位設置成不及格設為0)。
result&=~(1<<27) //任意的位值與0作按位與操作其值為0,而與1作按位與操作其值不變
(c) 反轉第27位的值。
result^=(1<<27) //任意的位值與1作按位異或操作其值為1,而與0作按位異與操作其值不變
以上就是對C++位操作的基本概念介紹。