字节操作c#

时间:2012-10-06 18:18:23

标签: c# byte operation threshold

我有一个应该计算阈值的表达式。原始代码是:

float threshold = vertHist.min + ((vertHist.max - vertHist.min)/2);

然后修改为:

retVal.threshold = (byte)(minValue + ((maxValue - minValue) >> 1));

我可以理解原始代码及其背后的逻辑,但有人可以引导我完成后者的代码,这是前者的修订版本吗?

感谢。

1 个答案:

答案 0 :(得分:1)

>>是按位右移运算符。对于正整数(你期望maxValue - minValue),它具有除以(幂)2的效果,并且编译器实际上有时会用右移替换除以2的除法,所以除非你特别要求转换行为,否则你应该避免用班次替换师。