在有符号整数内对元组进行排序

时间:2011-04-10 23:13:17

标签: assembly sse2

我将16 + 16位的元组排序为SSE2的32位整数。只有有符号整数指令用于比较和最小/最大。我对高位部分的顺序没有问题,因为它只是一个哈希。但是具有负哈希值的条目将被向后排序(对吗?)可能但不是很好的解决方案可能是:

  • 将高位归零,失去精度(不太好)
  • 如果设置了较高位的哈希值,则将位置转换为负值,并在排序后将其转换回来。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

从32位值中减去0x80000000,使用带符号的操作,然后再添加0x80000000。