參加運算的兩個數,按二進位制位進行「與」運算
運算規則:只有兩個數的二進位制同時為1,結果才為1,否則為0(負數按補碼形式參加按位與運算)
即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1
例:3 &5 即 00000011 & 00000101 = 00000001 ,所以 3 & 5 的值為1
參加運算的兩個數,按二進位制位進行「或」運算
運算規則:參加運算的兩個數只要兩個數中的乙個為1,結果就為1
即 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1
例:2 | 4 即 00000010 | 00000100 = 00000110 ,所以2 | 4的值為 6
參加運算的兩個數,按二進位制位進行「異或」運算
運算規則:參加運算的兩個數,如果兩個相應位為「異」(值不同),則該位結果為1,否則為0
即 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0
例: 2 ^ 4 即 00000010 ^ 00000100 =00000110 ,所以 2 ^ 4 的值為6
求反運算子~為單目運算子,具有右結合性。其功能是對參與運算的數的各二進位按位求反
例如
~9的求反運算為:
~(1001)
結果為:
0110
左移運算子,是雙目運算子。左移n位就是乘以2的n次方。
其功能把,左邊的運算數的各二進位全部左移若干位,
由,右邊的數指定移動的位數,高位丟棄,低位補0。
例如:將a的二進位制數左移2位,右補0。若a=15,即二進位制數00001111,左移2位得00111100,即十進位制數60
右移運算子,是雙目運算子。右移n位就是除以2的n次方
其功能是把,左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:設 a=15,a>>2 表示把00001111右移為00000011(十進位制3)。
應該說明的是,對於有符號數,在右移時,符號位將隨同移動。
當為正數時, 最高位補0,而為負數時,符號位為1,
最高位是補0或是補1 取決於編譯系統的規定。
turbo c和很多系統規定為補1。
數學意義:
右移一位相當於除2,右移n位相當於除以2的n次方。這裡是取商哈,餘數就 不要了。
位與 按位或 按位異或 運算
1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 00000001 1的二進位制補碼...
位運算( 按位與 按位或 異或)
參加運算的兩個數,按二進位制位進行 運算。運算規則 只有兩個數的二進位制同時為1,結果才為1,否則為0。負數按補碼形式參加按位與運算 即 0 0 0 0 1 0,1 0 0,1 1 1。比如10 11 即 0000 1010 0000 1011 0000 1010 所以 10 11 等於10 參加運...
位運算(按位與 按位或 異或)
按位與運算子 參加運算的兩個數,按二進位制位進行 與 運算。運算規則 只有兩個數的二進位制同時為1,結果才為1,否則為0。負數按補碼形式參加按位與運算 即 0 0 0 0 1 0,1 0 0,1 1 1。例 3 5 即 00000011 00000101 00000001 所以 3 5的值為1。按位...