任何人都可以指出 Z 阶曲线实现的 Java 代码吗?我有 x,y 浮点坐标,我想要它们的一维表示,我知道这可以使用 Z 阶曲线变换。我找不到此函数的 Java 实现或 C 代码。
我将不胜感激任何帮助!
我会自己写这个。
Math.getExponent
首先从浮点数转换为整数,通过使用并取其中的最大值计算两个指数。然后您可以缩放这些数字,使这些数字中较大的一个在小数点前有 32 位。然后将结果四舍五入(或截断)为 int。然后,您必须使用位交错将这两个整数组合成一个 long,最后您可以使用存储的指数再次缩放结果。
如果您的输入已经被限制在例如 [0,1] 范围内,您可以简单地使用基于整数的定点算术而不是手动重新缩放。
为了进行位交错,我会使用一个查找图,例如获取一个 8 位块并计算相应的 16 位交错块。这样你就不必做太多的位移操作。