Skip to content
高琦程 Gao Qicheng
Go back

位运算

Edit page

& 按位与(两个都是1)

常用 x&1 来取最后一位,如:

13 & 1 = 1101 & 0001 = 0001 = 1 12 & 1 = 1100 & 0001 = 0000 = 0

事实上如果 x 是奇数则 x & 1得到1,偶数得0.


| 按位或(有一个是1就行)

把某一位强制设成1,而且不影响其他位。


<< 左移 整体左挪一位,右边补0. 相当于*2


>>右移 对于无符号数,整体右移一位,左边补零。 for 正数和无符号数,右移k位相当于除以 2^k 取整。


^ 按位异或(两个不同则为1,相同则为0)

常用来翻转某一位。


例题:颠倒二进制位

class Solution {
public:
    int reverseBits(int n) {
        int ans = 0;
        for(int i = 0;i < 32;i++){
            ans <<= 1;
            int t = n&1;
            ans |= t;
            n >>= 1;
        }
        return ans;
    }
};

Edit page
Share this post:

Previous Post
VCI|可视计算与交互概论课程笔记(2026 Fall)
Next Post
SKILLS