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

来源:互联网 发布:西施貂蝉网络表情 编辑:程序博客网 时间:2024/05/16 16:03

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

01100010<<2=10001000

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

01100010>>2=0001100010100010>>3=11110100

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

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

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

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

0 0
原创粉丝点击