區分 &,丨,^的運算規則
& (按位與運算子)表示:
兩個運算元中位都為1,結果為1
如果兩個操作中位乙個1另乙個0 ,結果為0
即運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1;
例如:1010 & 1110= 1010
|(按位或運算子)表示:
兩個操作中位只有乙個為1,結果就等與1
即運算規則:0|0=0; 0|1=1; 1|0=1; 1|1=1
例如: 1010 | 1111 =1111
^(異或 運算子)表示
兩個中位如果相同的數值,結果為 0,
如果兩個中位 數值不同,結果為1.
即執行結果:同數值: 0^0=0;1^1=0;
不同數值: 0^1=1; 1^0=1;
例如:1010 ^ 1110 = 0100 (一位一位比較)
~(取反運算子)表示:
參加運算的乙個資料,按二進位制位進行「取反」運算。
即:對乙個二進位制數按位取反,即將0變1,1變0
運算規則:~1=0; ~0=1;
例如:使乙個數的最低位為零,可以表示為:a&~1
~1的值為1111111111111110
0x31 (一般看到0x==》16進製制數
0x31計算: 先把0x31轉換為 10進製的數 0x31(10)=16*3+1=49
再把得到10進製轉 2進製 49(2)=110001
所以 0xff 也是這樣計算的 f==>表示15進製
0xff(10)= 16*15+15=255
255 (2) = 11111111
0x31 & 0xff 的 計算
因為0xff得出的結果 8個位元組,而位數要相同,那麼 0x31就要補0,因為在0x31的二進位制為110001已經又6個位元組了,那麼再前面加兩個0即可(這句其實我覺得我說的有點怪怪的)
a): 0x31 & 0xff
= 00110001 & 11111111
=00110001
=110001
b): 0x31 | 0xff
= 00110001 | 11111111
=11111111
位運算子與位運算
位運算是對二進位制位的操作,它應用於整形資料,把整形資料看成固定的二進位制序列,然後對二進位制序列進行位運算 按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例c a b a 1010...
邏輯運算子與位運算子
1.運算子 用於對邏輯值的取反運算。當邏輯值為true時,經過取反變為false 當邏輯值為false時取反成true。2.運算子 運算子 用於對邏輯值進行異或運算。當運算兩側同時為true或false時,運算結果為false,否則為true。3.運算子 和 運算子 和 均用於邏輯與運算。當兩側同時...
位運算子,「,」逗號運算子,
位運算子有 按位與 按位或 按位異或 按位取反 優先順序從高到低,依次為 按位與運算有兩種典型用法,一是取乙個位串資訊的某幾位,如以下 擷取x的最低7位 x 0177。二是讓某變數保留某幾位,其餘位置0,如以下 讓x只保留最低6位 x x 077。按位或運算的典型用法是將乙個位串資訊的某幾位置為1。...