C++细节学习之高效的位运算

基础:
左移运算符m<<n,表示把m左移n位,左移n位的时候,最左边的n为将丢掉,同时在最右边补上n个0;比如:

01100010<<2=10001000

右移运算符m>>n表示把m右移n位,右移时,最右边的n位将去掉,原先为正数的,在最左边补上n个0;原先为负数的,在最左边补上n个1.比如:

01100010>>2=00011000
10100010>>3=11110100

应用:
位运算比乘除法高效很多,所以编程时能用位运算的尽量用位运算。

乘除法:n>>1 代替 n/2

    - 除2 = 右移1位               乘2 = 左移1位
    - 除4 = 右移2位               乘4 = 左移2位
    - 除8 = 右移3位               乘8 = 左移3位

求余数,判断奇偶: n&1==1代替 n%2==1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值