C語言 位運算相關總結

2021-09-23 06:06:42 字數 898 閱讀 3267

1.位運算符號&,|,^,~(取反,不分正負數),<<(標準規定在右邊補0),>>

(正數則左邊補0, 負數標準沒有規定在左邊補充的數字,分為邏輯右移和算術右移,具體由編譯器決定,windows平台和gcc採取算術右移即負數補1)

2.常見的二進位制位的變換操作

去掉最後一位 | (101101->10110) | x >> 1

在最後加乙個0 | (101101->1011010) | x << 1

在最後加乙個1 | (101101->1011011) | (x << 1)|1

把最後一位變成1 | (101100->101101) | x | 1

把最後一位變成0 | (101101->101100) | (x | 1)-1或者

最後一位取反 | (101101->101100) | x ^ 1

把右數第k位變成1 | (101001->101101,k=3) | x | (1 << (k-1))

把右數第k位變成0 | (101101->101001,k=3) | x & ~(1 << (k-1))

右數第k位取反 | (101001->101101,k=3) | x ^ (1 << (k-1))

取末三位 | (1101101->101) | x & 7

取末k位 | (1101101->1101,k=4) | x & ((1 << k)-1)

取右數第k位 | (1101101->1,k=4) | (x >> (k-1)) & 1

把右邊連續的1變成0 | (100101111->100100000) | x & (x+1)

把右起第乙個0變成1 | (100101111->100111111) | x | (x+1)

把右邊連續的0變成1 | (11011000->11011111) | x | (x-1)

位運算相關總結

計算機cpu中alu是由邏輯門構成的,非常善於位運算。因此,在程式中使用位運算,經常能夠加快程式執行。另外,掌握一些位運算的相關知識也能增加一些程式設計的樂趣。位運算經常使用到異或運算和與運算。異或運算符合交換律 結合律,它的特點是相同為0,不同為1。與運算是同為1則為1。詳細內容 1 兩個數比較大...

位運算相關總結

按位與運算子 參加運算的兩個資料,按二進位制位進行 與 運算 運算規則 兩位同時為1結果才為 1,否則為 0.負數按補碼形式參加按位與運算 與運算 的特殊用途 1 清零。如果想將乙個單元清零,即使其全部二進位制位為0,只要與乙個各位都為 0的數值相與,結果為 0.2 取乙個數中指定位 方法 找乙個數...

C語言中 位運算總結

位運算子包括 按位與,按位或 按位異或 and 位與 or 位或 xor 位異或 1 1 1,1 1 1,1 1 0 1 0 0,1 0 1,1 0 1 0 1 0,0 1 1,0 1 1 0 0 0,0 0 0,0 0 0 位運算 位運算的運算分量只能是整型或字元型資料,位運算把運算物件看作是由二...