我有一个应该计算阈值的表达式。原始代码是:
float threshold = vertHist.min + ((vertHist.max - vertHist.min)/2);
然后修改为:
retVal.threshold = (byte)(minValue + ((maxValue - minValue) >> 1));
我可以理解原始代码及其背后的逻辑,但有人可以引导我完成后者的代码,这是前者的修订版本吗?
感谢。
答案 0 :(得分:1)
>>
是按位右移运算符。对于正整数(你期望maxValue - minValue
),它具有除以(幂)2的效果,并且编译器实际上有时会用右移替换除以2的除法,所以除非你特别要求转换行为,否则你应该避免用班次替换师。