C C 中的位操作

2021-07-09 23:18:12 字數 2057 閱讀 3467

1、位邏輯非運算

位邏輯非運算是單目的,只有乙個運算物件。位邏輯非運算按位對運算物件的值進行非運算,即:如果某一位等於0,就將其轉變為1;如果某一位等於1,就將其轉變為0。

比如,對二進位制的10010001進行位邏輯非運算,結果等於01101110,用十進位制表示就是:

~145等於110;對二進位制的01010101進行位邏輯非運算,結果等於10101010。用十進位制表示就是~85等於176。

2、位邏輯與運算

位邏輯與運算將兩個運算物件按位進行與運算。與運算的規則:1與1等於1,1與0等於0。

比如:10010001(二進位制)&11110000等於10010000(二進位制)。

3、位邏輯或運算

位邏輯或運算將兩個運算物件按位進行或運算。或運算的規則是:1或1等1,1或0等於1,

0或0等於0。比如10010001(二進位制)| 11110000(二進位制)等於11110001(二進位制)。

4、位邏輯異或運算

位邏輯異或運算將兩個運算物件按位進行異或運算。異或運算的規則是:1異或1等於0,

1異或0等於1,0異或0等於0。即:相同得0,相異得1。

比如:10010001(二進位制)^11110000(二進位制)等於01100001(二進位制)。

5、位左移運算

位左移運算將整個數按位左移若干位,左移後空出的部分0。比如:8位的byte型變數

byte a=0x65(即二進位制的01100101),將其左移3位:a<<3的結果是0x27(即二進位制的00101000)。

6、位右移運算

位右移運算將整個數按位右移若干位,右移後空出的部分填0。比如:8位的byte型變數

byte a=0x65(既(二進位制的01100101))將其右移3位:a>>3的結果是0x0c(二進位制00001100)。

在進行位與、或、異或運算時,如果兩個運算物件的型別一致,則運算結果的型別就是運算物件的型別。比如對兩個int變數a和b做與運算,運算結果的型別還是int型。如果兩個運算

物件的型別不一致,則c#要對不一致的型別進行型別轉換,變成一致的型別,然後進行運算。

型別轉換的規則同算術運算中整型量的轉換則一致。

由位運算子連線整型量而成的表示式就是位運算表示式。

位操作符是對資料按二進位制位進行運算的操作符。c#位操作符包括:

舉例說明

using system;

class mikecat

",a);

//6的二進位制是00000110,3的二進位制是00000011,按位與後等於00000010,  即2。

int b=6|3;

console.writeline("b=",b);

//6的二進位制是00000110,3的二進位制是00000011,按位或後等於00000111,即7

int c=~6;

console.writeline("c=",c);

//6的二進位制是00000110,按位取反後是11111001即-7

int d=6^3;

console.writeline("d=",d);

//6的二進位制是00000110,3的二進位制是00000011,按位異或後等於00000101,即5

int e=6<<3;

console.writeline("e=",e);

//6的二進位制是00000110,左移三位後等於00101000,即48

int f=6>>2;

console.writeline("f=",f);

//6的二進位制是00000110,右移二位等於00000001,即1

}}

位運算可以更直接、更高效地實現某些操作。

c c 中的位操作

c c 支援比較低階的位運算,在是眾人皆知的了。每本c c 的教科書都會說到這部分的內容,不過都很簡略,我想會有很多人不知道位運算用在什麼地方。這個帖子就簡略說說位運算的用處,更進一步的用法要大家自己去體會。而主要說的是操作標誌值方面。define bti msk bit 1 bit define ...

c c 的位操作

c c 的位操作 說明,本文章面向初學者,高手勿看,如有問題需要 請發郵件 xjtufjj stu.xjtu.edu.cn c c 是一種系統程式語言,之所以這樣說其中乙個原因是是因為其提供的位操作的能力。其提供的位操作符直接對應於相關的彙編指令。在現實的程式設計實踐中,合理的使用位操作會大大提高效...

C c 中幾種操作位的方法

參考how do you set,clear and toggle a single bit in c?c c 中對二進位制位的操作包括設定某位為1 清除某位 置為0 開關某位 toggling a bit 檢查某位是否為1等。這些操作較為常見並且可以作為其他位運算的基礎介面,以下羅列幾種方法 nu...