Постоянное время n оставленного битового сдвига n бит - PullRequest
0 голосов
/ 27 марта 2020

Для больших битов смещения битов. Я видел этот ответ в StackOverflow :

uint64_t i1, i2, i3, o1, o2, o3; // {o3, o2, o1} = {i3, i2, i1} << 3;

o3 = i3 << 3 | i2 >> (32 - 3);
o2 = i2 << 3 | i1 >> (32 - 3);
o1 = i1 << 3;

Но это работает только для максимальных 32 сдвигов влево. Как я могу создать решение с n-битными сдвигами влево? Должен быть постоянным временем.

...