2014-09-23 80 views

回答

0

如方法所述,钥匙x除以2^(w-k)。在位级这实际上意味着x的位被右移(w-k)

现在采取一种情况,其中x = 7,(w-k) = 3。所以x = 00000111和意味着x = 00000000将这些位向右移。

现在,你会注意到,对于x7 (00000111) to 0 (00000000)的所有值,位移将导致00000000(将位右移总是将0附加到左侧)。因此具有大量前导0(7到0)的值将碰撞到相同的散列。

+0

感谢您的澄清。我对上面的解释x有2 ^(w-k)的分歧,我认为我们是右移不左移。问题在于作者如何精确确定中间数字,是如何将x * x >>(w-k)给予中间数字 – venkysmarty 2014-09-23 10:34:46

+0

我的错误,这些数字正在向右移动。最终会在左边追加0。 @venkysmarty – Haris 2014-09-23 10:36:16

+0

见。采取不同的例子。 'x = 8(00000100)'不用2 ^(w-k)除以2将得到散列值'00000001'。从'x = 8'我们得到'0001',这是'x'的中间位。 @venkysmarty – Haris 2014-09-23 10:40:22