Не понимаю как это выражение риадизует формулу хеширвоания методом умножения

Эта функций реализует формулу хеширования методом умножения

unsigned short HashFunc(unsigned short key, unsigned short tableSize){
    unsigned w = 65535;
    unsigned A = 65534;
    unsigned  m = sqrt(tableSize);
    return (A * key) >> (w - m);
}

w - максимальный размер ключа; A - взаимно простое число, числу w; m - тепень двойки от размера таблицы; key - ключ

Я не понимаю,как такая запись (A * key) >> (w - m) может реализововать эту формулу введите сюда описание изображения

формулу и эквиволетную ей запись на си взял из университетской методчики. Вот сама методичка введите сюда описание изображения


Ответы (0 шт):