我的类包装了一个 Vector3D 类型的对象,它包含三个 double 类型的字段 x , y 和 z 。我想基于这些值创建一个哈希,但由于 double 是64位且 int 只有32,我需要"打破"每个坐标都在一半,并将前半部分强加在第二个。
如果我们假装我们的变量是4位宽并且输入是8位宽,我想做以下事。
x = 10010101
y = 01010111
z = 11110010x1 = 1001
x2 = 0101
y1 = 0101
y2 = 0111
z1 = 1111
z0 = 0010
这样得到的宽度为4位的散列将是例如XOR就在上面。不确定如何在 double 上执行适当的按位操作,以便它最终在我的 int 中。谷歌搜索只给了我文档,而那些并没有让我更聪明。
尽管如此,我觉得这是一个标准问题,如果使用正确的关键字,解决方案应该很容易找到。有什么帮助吗?