位運算&1,>>1,<<1


C/C++語言里,&代表取地址或者“位與”運算

1、取變量的地址:&變量名,這將獲得該變量的地址,例:int a = 1, &p = a。

2、進行位與運算,格式是:變量1&變量2,進行計算時,將會把類型提升為int。

“位與”運算是“位運算”的一種, 運算法則是在二進制數下,相同位的兩個數字都為1,則為1;若有一個不為1,則為0。&運算通常用於二進制取位操作,例如一個數 & 1的結果就是取二進制的最末位。這可以用來判斷一個整數的奇偶,二進制的最末位為0表示該數為偶數,最末位為1表示該數為奇數。

再舉個例子,6的二進制是110,11的二進制是1011,那么6 & 11(也可以表達為6 and 11)的結果就是二進制的10,即十進制的2。
這里 n&1 就是——判斷n是否為奇數
因為n為奇數時,對應的二進制數最低位一定為1,n&1的結果就是1
n為偶數時,相應的最低位為0,n&1的結果就是0,
這里也可以寫 n&1 ==1 或者寫 n%2 == 1 或者寫 n%2
>>1 等價於 /2
<<1 等價於 *2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM