Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个应该计算阈值的表达式。原始代码是:
float threshold = vertHist.min + ((vertHist.max - vertHist.min)/2);
但后来被修改为:
retVal.threshold = (byte)(minValue + ((maxValue - minValue) >> 1));
我可以理解原始代码及其背后的逻辑,但是有人可以带我看一下后者的代码,它是前者的修订版吗?
谢谢。
>>是按位右移运算符。对于正整数(您期望maxValue - minValue是),它具有除以(的幂)2 的效果,编译器实际上有时会用右移替换除以 2,因此您应该避免替换除非您特别需要轮班行为,否则请使用轮班进行除法。
>>
maxValue - minValue