В случае целого числа без знака u
мы можем легко получить частное с помощью u>>k
(k означает деление на 2 ^ k)
Но в случае отрицательных чисел его следует вычислять как (u+(1<<k)-1)>>k
Я вижу, что u>>k
не работает для отрицательных чисел.
Но мне любопытно, почему нам точно нужно добавить (1<<k)-1
к u
Любые объяснения могут быть действительно полезны.