我从未见过在循环中使用<<操作符。
请让我知道这些运算符<<,>>在此循环中扮演什么角色。
for(i=step << 1; i>=0;i-=2)
{
// normal
Normal(angles[i>>1]
}
答案 0 :(得分:6)
i >> 1
是编写i / 2
的愚蠢方式,假设i
是适当的整数类型。
step << 1
是编写step * 2
的愚蠢方式,假设step
是适当的整数类型。
答案 1 :(得分:2)
按位移位运算符按位移位运算符表达式具有 表格
lhs << rhs(1)
lhs >> rhs(2)
1)将lhs左移rhs位
2)将lhs右移rhs位
对于内置运算符,lhs和 rhs必须都具有整数或无作用域枚举类型。积分 提升在两个操作数上执行。返回类型是类型 积分提升后左操作数的大小。