按位與 和短路與

2021-07-08 18:45:07 字數 762 閱讀 3463

按位與&和短路與&&區別:

& 既是位運算子又是邏輯運算子,&的兩側可以是int,也可以是boolean表示式,當&兩側是int時,要先把運算子兩側的數轉化為二進位制數再進行運算,而短路與(&&)的兩側要求必須是布林表示式。舉例如下:

12&5 的值是多少?答:12轉成二進位制數是1100(前四位省略了),5轉成二進位制數是0101,則運算後的結果為0100即4 這是兩側為數值時;

若 int i = 2,j = 4;則(++i=2)&(j++=4)的結果為false,其過程是這樣的:先判斷++i=2是否成立,這裡當然是不成立了(3 == 2),但是程式還會繼續判斷下乙個表示式是否成立,j++=4 ,該表示式是成立的,但是&運算子要求運算子兩側的值都為真,結果才為真,所以(++i=2)&(j++=4)的結果為 false 注意 :&為真的條件是兩側表示式都為真,但是即使我們判斷出左側表示式的值為false,程式也還是要繼續執行去判斷右側的表示式值的真假

若 int i = 2,j = 4;則(++i=2)&&(j++=4)的結果為false,其過程基本上和上面的是相同的,但是若左側表示式的值為false時,程式則不會繼續判斷右側表示式的真假了,短路與中,短路這個詞大概也就是這個意思吧

按位或(|)與短路或(||)區別:

按位或和短路或的區別大體上和(&)和(&&)的區別差不多

(|)和(||)成立的條件是只要一側表示式為真,結果就為真,在(|)運算時,無論左側的表示式的值為真還是為假,都要判斷右側的表示式的值的真假,而(||)在運算時,只要左側表示式的值為真,就不再判斷右側表示式的值了

通過按位與和按位或操作

通過按位與和按位或操作來拉高或者拉低某位的電平,用這兩種運算可以讓其他為的電平狀態不受影響。1.按位或 操作,可以實現拉高電平 0 1,即對應位至少有一者為1運算結果為1,都為0才為0 將需拉高電平的低電平位0與1進行按位或操作,0 1 1即可拉高電平。如果原操作為也有為0的,為保證其電平不改變,其...

邏輯與 ,按位與

按位與操作符 需要兩個整數運算元。在每個位所在處,如果兩個運算元都含有1,則結果該位是1,否則為0。邏加與操作符 只有當邏輯與操作符的兩個運算元都為true時,結果值才會是true。對於兩個邏輯量,兩種運算等效 對於兩個整型量,邏輯與只判斷兩個均不為0,則為true,但是按位與則將兩個數轉為二進位制...

按位與 按位異或 按位取反

按位與 按位或 按位異或 1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 0000...