1. C语言位及其运算符
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
────────────────────────────
& 位逻辑与
| 位逻辑或
^ 位逻辑异或
- 位逻辑反
>> 右移
<< 左移
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※特别注意:逻辑运算符的“!”——逻辑非,不是位运算符!
2. 用途举列
(1)对于以2的指数次方为“*”、“/”或“%”因子的数学运算,转化为移位运算“<<” 、“>>”,通常可以提高算法效率,因为乘除运算指令周期通常比移位运算大。
1
#include "Stdio.h"
2
#include "Conio.h"
3![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
int main(void)
5
{
6
unsigned i,j;
7
i = 879 / 16;
8
printf("The result of 879 divided by 16 is : %d\n",i);
9
i = 879 >> 4; //等价于879/16
10
printf("The result of 879 move right 4 digit is : %d\n",i);
11![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
j = 562 % 32;
13
printf("The result of 562 mode 32 is : %d\n",j);
14
j = 562 - (562 >> 5 << 5); //等价于562%32
15
printf("The result of 562 mode 32 by move digit is also: %d\n",j);
16![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
getch();
18
return 0;
19
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
结果如下:
※特别注意:两个整数相除结果为整数,如879/16的结果值为54!