从C到C++:位运算
位运算
按位与
用处:
按位或
用处:
按位异或
用处:
按位非
左移
a << b
,高位丢弃,低位补0。a的值不因运算而改变。
用处:
右移
a >> b
,低位丢弃,高位补0。a的值不因运算而改变。
用处:
举例:
#include<stdio.h>
int main(int argc,char * argv[])
{
int n1 = 15;
short n2 = -15;
unsigned short n3 = 0xffe0;
char c = 15;
n1 = n1 >> 2;
n2 >>= 3;
n3 >>= 4;
c >>= 3;
printf("n1=%d,n2=%x,n3=%x,c=%x", n1, n2, n3,c);
}//输出结果n1=3,n2=fffffffe,n3=ffe,c=1
思考题
解答:(a>>n)&1
或 (a & (1<<n))>>n