在C或C ++中>> =是什么意思?
在C或C ++中>>=
符号的含义是什么? 它有什么特别的名字吗?
我在一些CUDA代码中有这个for
循环,看起来像这样
for(int offset=blockDim.x; offset>0; offset >>=1) { //Some code }
如何使用>>=
运算符修改偏移量变量?
>>=
符号是右移的赋值forms,即x >>= y;
是x = x >> y;
缩写x = x >> y;
(除非超载意味着不同的东西)。
右移1等于除以2.该代码看起来像某人不信任编译器进行最基本的优化,应该相当于:
for( int offset = blockDim.x; offset > 0; offset /= 2 ){ ... }
有关按位运算的更多信息,请访问:
字面offset = offset >> 1
,即offset
除以2
这是右移的分配版本:
foo >>= 2; // shift the bits of foo right by two places and assign the result to foo
这是一个按位向右移位的算子。 它将变量的位向右移动右操作数的值。