逆向公式转换

发布于 2024-09-02 01:56:36 字数 341 浏览 1 评论 0原文

我有一个计算 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;

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

I have a formula which calculate position for Y, here it is:

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

and now i have sy, and i need to calculate y like this:

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

but conversion is not equals.. i think it because I don't know how to converse ~ and & operators.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意中人 2024-09-09 01:56:36

~x 是 -x-1,它是它自己的逆元。

x & 0xffff 与 x % 65536 相同。由于多个值可以映射到相同的结果,因此您无法反转它,但如果结果在适当的范围内,您可以将其视为恒等式,即忽略它。

~x is -x-1, it is it's own inverse.

x & 0xffff is the same as x % 65536. Since several values can map to the same result you cannot invert it, but if the result is in the proper range you can just treat it like the identity, i.e. leave it out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文