您的位置:首页 > 编程语言 > C语言/C++

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

2015-05-23 10:17 751 查看
基础:

左移运算符
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++