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 相同。由于多个值可以映射到相同的结果,因此您无法反转它,但如果结果在适当的范围内,您可以将其视为身份,即忽略它。

于 2010-05-17T19:43:05.487 回答