我有一个计算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;
但转换不等于......我认为是因为我不知道如何交谈〜和&amp;运算符。
答案 0 :(得分:1)
~x是-x-1,它是它自己的逆。
x&amp; 0xffff与x%65536相同。由于多个值可以映射到相同的结果,因此无法将其反转,但如果结果在适当的范围内,您可以将其视为身份,即将其保留。