C语言中中 >> 有什么用,我知道是右移 但具体有什么好处 能不能举点例子?

如题所述

>>从二进制的角度相当于把无符号的二进制整数除以2,举个例子:

#include<stdio.h>

int main ()
{
unsigned int a=1000;
printf("a=%d\n",a);
printf("a>>1=%d\n",a>>1);
printf("a/2=%d\n",a/2);
return 0;
}

执行效果如下,可以看到做一次移位运算和除以2的效果是一样的,而且往往移位运算比除法效率高。这种做法在单片机和通讯领域里面比较常用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-10
效果上讲部分等效于/2,不考虑编译器优化的话,右移执行效率比单纯的除法高(现代编译器的优化后,没有差距)
现在位运算多用于加密/解密运算,字节校验等算法中本回答被网友采纳
相似回答