位運算讓計算機的操作變得簡單並且迅速,掌握位運算的常見用法可以迅速解決一些看似複雜的題目,理解位運算也能讓我們更透徹的理解計算機。
位運算子
1.&,按位與,若相應二進位制位均為1,則結果的此二進位制位為1否則為0,簡單來說就是如果有乙個0就為0,兩個1才為1與按位或相反。
2.|,按位或,若相應二進位制位只要有一位為1則為1,否則為0。
3.^,按位異或,若相應二進位制位相同為0,否則為1。
4.~,取反若二進位制位為0則變為1,為1則變為0。
5.《左移,向左移n位相當於乘以2^n,二進位制數低位補零。
6.>>右移,向右移n位相當於除以2^n,二進位制數高位補零。
7.關於負數,最高位為1,其餘與正數相同。
8.關於原碼,反碼和補碼
(1)原碼:原碼,第一位存符號,剩餘位數存放二進位制數。
(2)反碼:正數的反碼是其本身,負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反.。
(3)補碼:正數的補碼等於它本身,負數的補碼等於其反碼加一。
關於應用:
1.乙個集合中只有乙個數出現一次其餘數出現兩次求出現一次的這個數。
解法:如果由於a ^ a=0,a ^ 0=a;所以我們只需將全部數^即可求出只出現一次的那個數。
強大的位運算
time limit 1 sec memory limit 128 mb submit 2 solved 2 submit status web board 你現在有一條水晶鏈,上面鑲著n個珠子,每個珠子可能是紅色 r 綠色 g 或者藍色 b indira有一種神奇的魔法,就是可以將相鄰兩個不同顏色...
位運算的強大與幾個應用
4 100 分別於4按位與運算 5 101 100 6 110 100 7 111 100 8 1000 0000 3 11 000 推導出在2 n到2 n 1 之間一直按位與結果都是2 n 托公尺完成了1317的上乙個任務,十分高興,可是考驗還沒有結束 說話間1317給了托公尺 n 個自然數 a1...
位運算 57 普通的位運算
要求說明 當 a 2,b 4,c 6,d 8時程式設計求a c b d a d a的值。解 單目運算子 都是對對應整數轉化成二進位制數後按位比較計算 兩個相應二進位中,都為1,該位為1,否則為0 兩個相應二進位中,有乙個1,該位為1,否則為0 兩個相應二進位,相同為0,不同為1 單目運算子,作用對二...