[位运算]常见的位运算

常见的位运算

写在前面

正文

x&(-x)

返回 x x x 的二进制数最低位为 1 1 1 的权值
例如
10100最低位的1权值是4
1001010最低位的1权值是2
111最低位的1权值是1

x<<n

返回 x   ∗   2 n x~*~2^n x  2n
例如
5 << 1 ,返回 25
2 << 2 ,返回 8

x>>n

返回 x   /   2 n x~/~2^n x / 2n
例如
4 >> 1 ,返回 2

x&(x-1)

x x x 最右边的第一个 1 1 1 变成 0 0 0

x&(~(x-1))

返回 x x x(二进制表示)中是 1 1 1 的最低位

统计数字中1的个数

int func(int x){
    int countx = 0;
    while(x){
        countx++;
        x = x&(x-1);
    }
    return countx;
} 
未完待续…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值