1

Yの位置を計算する式があります。これは次のとおりです。

double y = ...;
double minX = ..;
double scaleY = ..;
int MAX_COORD = (1 << 16) - 1;
int sy = ~(int)((y - minY) / scaleY * MAX_COORD) & 0xFFFF;

そして今、私はsyを持っています.yを次のように計算する必要があります:

y = (sy * scaleY) / MAX_COORD + minY;

しかし、変換は等号ではありません..〜と&演算子を会話する方法がわからないためだと思います。

4

1 に答える 1

1

~x は -x-1 です。これはそれ自身の逆数です。

x & 0xffff は x % 65536 と同じです。複数の値が同じ結果にマップされる可能性があるため、反転することはできませんが、結果が適切な範囲内にある場合は、それを ID のように扱うことができます。つまり、除外します。

于 2010-05-17T19:43:05.487 に答える