1

しきい値を計算する式があります。元のコードは次のとおりです。

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

その後、次のように変更されました。

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

元のコードとその背後にあるロジックは理解できますが、前者の改訂版である後者のコードについて説明してもらえますか?

ありがとう。

4

1 に答える 1

1

>>ビットごとの右シフト演算子です。正の整数(あなたが期待maxValue - minValueしている)の場合、2(の累乗)で除算する効果があり、実際、コンパイラは2で除算を右シフトに置き換えることがあるので、特にシフト動作が必要な場合を除き、シフトによる分割。

于 2012-10-06T18:23:25.833 に答える