2010-05-17 57 views
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 = (sy * scaleY)/MAX_COORD + minY; 

但转换不等于..我认为这是因为我不知道如何交换〜和&运营商。

+0

而问题是。 – WhirlWind 2010-05-17 19:39:04

回答

1

〜x是-x-1,它是它自己的逆。

x & 0xffff与x%65536相同。由于几个值可以映射到相同的结果,所以不能将其反转,但如果结果处于适当的范围内,则可以将其视为标识,即保留它出。