Цитата(x736C @ Apr 21 2017, 16:57)

Существует ли какой-нибудь оптимальный способ целочисленного деления на 2^n-1 ?
Или только предложенными выше универсальными делителями?
Да, такой "оптимальный" способ существует.
Чтобы его "найти", нужно вспомнить школьную формулу для суммы геометрической прогрессии:
2
-n + 2
-2n + 2
-3n + ... + 2
-mn = (1 - 2
-mn)/(2
n - 1).
Из этого следует, что:
a*(1 - 2
-mn)/(2
n - 1) = a/(2
n - 1) - a*2
-mn/(2
n - 1) = a*(2
-n + 2
-2n + 2
-3n + ... + 2
-mn),
или:
a/(2
n - 1) = a*(2
-n + 2
-2n + 2
-3n + ... + 2
-mn) + a*2
-mn/(2
n - 1),
или:
a/(2
n - 1) = (a >>> n) + (a >>> 2n) + (a >>> 3n) + ... + (a >>> mn) + a*2
-mn/(2
n - 1).
Из этой формулы видно, что с точностью до слагаемого:
Δ = b*2
-mn,
частное от деления "a" на (2
n - 1) равно:
b == a/(2
n - 1) ≈ (a >>> n) + (a >>> 2n) + (a >>> 3n) + ... + (a >>> mn).