Расширение бит-хедлинга для Log_2 до 64 бит - PullRequest
0 голосов
/ 18 марта 2011

Я реализовал код здесь в C #, чтобы получить MSB для int.Я не уверен, что мне нужно делать с таблицей ссылок журнала и основным кодом, чтобы расширить код до 64 бит.

Единственное, что говорит текст, это то, что потребуется еще 2 операции процессора, поэтому явывести изменение незначительно.

1 Ответ

1 голос
/ 18 марта 2011

Таблица не нуждается в изменении. Необходим еще один уровень if():

if (ttt = v >> 32)
{
    if (tt = ttt >> 16)
         r = (t = tt >> 8) ? 56 + LogTable256[t] : 48 + LogTable256[tt]
    else
         r = (t = ttt >> 8) ? 40 + LogTable256[t] : 32 + LogTable256[ttt]
}
else
{
    if (tt = v >> 16)
        r = (t = tt >> 8) ? 24 + LogTable256[t] : 16 + LogTable256[tt];
    else 
        r = (t = v >> 8) ? 8 + LogTable256[t] : LogTable256[v];
}
...