Предположим, у меня есть возрастающая последовательность целых чисел без знака C[i]
.По мере их увеличения, вероятно, они будут занимать все больше и больше битов.Я ищу эффективное условное выражение, основанное исключительно на двух последовательных элементах последовательности C[i]
и C[i+1]
(прошлые и будущие не наблюдаемые), которые будут оценивать значение true либо точно, либо приблизительно один раз за каждый раз, когда числоколичество требуемых битов увеличивается.
Очевидный (но медленный) выбор условного выражения:
if (ceil(log(C[i+1])) > ceil(log(C[i]))) ...
, а также все, что вычисляет число начальных нулевых бит с использованием специальных кодов операций ЦП (гораздо лучше, новсе еще не очень хорошо).
Я подозреваю, что может быть хорошее решение, включающее выражение, использующее только побитовое или и побитовое значение значений C[i+1]
и C[i]
.Есть мысли?