由于与问题不太相关的各种原因,我有一个表,其中包含由两个整数组成的复合键,我想从这两个数字中创建一个唯一的键。我最初的想法是连接它们,但当我意识到 (51,1) 的复合键会产生与 (5,11) 相同的唯一键(即 511)时,我很快遇到了问题。
有没有人有一种聪明的方法来从两个整数中生成一个整数,使得生成的整数对于这对起始整数是唯一的?
Edit:在面对大量的数学运算后,我意识到我应该包含的一个细节是所讨论的键的大小。在原始密钥对中,第一个密钥当前为 6 位数字,并且在系统生命周期内可能会保持为 7 位数字;第二个键尚未大于 20。考虑到这些限制,问题似乎不那么令人畏惧。
如果您希望生成的密钥包含与其两个组件相同数量的位数,则可以从数学上证明这是不可能的。但是,如果您从两个 32 位整数开始,并且可以使用 64 位整数作为结果,那么显然您可以执行以下操作:
key1 << 32 | key2
SQL语法
SELECT key1 * POWER(2, 32) + key2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)