位运算小结

当你做一个非常大的数的乘除运算时,你就会为位运算感叹,为之惊人的速度而感动!下面是我总结的一点点位运算的应用:

位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。

优先级从高到低,依次为~、&、^、|。

1. 左移1位相当于乘以2 << 左移2位相当于乘以4 依次类推左移N位相当于乘以2^n;(注意:两个操作数必须是int)

2. 右移1位相当于除2 >>右移2位相当于乘以4 依次类推左移N位相当于除2^n;

(注意:两个操作数必须是int,必须用于整除,结果也是整型的,不会保留小数部分).

3. 异或运算^:同为0,异为1

3.1应用 (只能用于整数)相同的两个整数作^运算结果为0。

3.2只能用于整数 0异或^其它任意整数等于该整数本身。(西南科大oj 1424 Find Different)。

3.3不用设置中间变量,用于交换两个整数的位置。

Int a = 9 ; int b = 2;

a = a ^ b;

b = b ^ a;

a = a ^ b;

4. 二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数.

判断int型变量a是奇数还是偶数,尤其是对大数的判断

a&1 == 0 偶数

a&1 == 1 奇数

5. 利用与运算可以求出一个int变量里面有多少个1

Sum里面存的就是该数对应的二进制中1的个数。

int a = 4095;

int sum = 0;

while(a > 0)

{

a = a & (a-1);

sum++;

}

cout << sum <<endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值