适当的方法来创建三个双打的哈希?

时间:2016-09-11 16:20:25

标签: c# hash int double bit-manipulation

我的类包装了一个 Vector3D 类型的对象,它包含三个 double 类型的字段 x y z 。我想基于这些值创建一个哈希,但由于 double 是64位且 int 只有32,我需要"打破"每个坐标都在一半,并将前半部分强加在第二个。

如果我们假装我们的变量是4位宽并且输入是8位宽,我想做以下事。

  

x = 10010101
  y = 01010111
  z = 11110010

     

x1 = 1001
  x2 = 0101
  y1 = 0101
  y2 = 0111
  z1 = 1111
  z0 = 0010

这样得到的宽度为4位的散列将是例如XOR就在上面。不确定如何在 double 上执行适当的按位操作,以便它最终在我的 int 中。谷歌搜索只给了我文档,而那些并没有让我更聪明。

尽管如此,我觉得这是一个标准问题,如果使用正确的关键字,解决方案应该很容易找到。有什么帮助吗?

0 个答案:

没有答案