位操作提高程序运行效率 减少除法和取模的运算。在计算机程序中数据的位是可以操作的最小数据单位,理论上可以用”位运算”来完成所有的运算和操作。
左移,后空缺自动补0;
右移,分为逻辑右移和算数右移
1)逻辑右移 不管是什么类型,空缺自动补0;
2)算数右移 若是无符号数,则空缺补0,若是负数,空缺补1;
#include<stdio.h>
int main()
{int i=305162121,j;printf("0x%x\n",i);j=i<<(sizeof(int)*4); //左移16位j=j|i>>sizeof(int)*4; //右移16位,前16位为0printf("0x%x\n",i);return 0;
}
输出结果
不使用第三方变量,交换两个变量的值
(1)a = a + b;
b = a - b;
a = a - b;
(2)a = a ^ b;
b = a ^ b;
a = a ^ b;