Как исправить вертикальное и горизонтальное расположение поля со списком в Qt Designer?

Существует множество алгоритмов для подсчета установленных бит; но я думаю, что лучший из них самый быстрый! Вы можете увидеть подробную информацию на этой странице:

Бит Twiddling Hacks

Я предлагаю этот вариант:

Счетные биты, установленные в 14 , 24 или 32-битные слова с использованием 64-битных команд

unsigned int v; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v

// option 1, for at most 14-bit values in v:
c = (v * 0x200040008001ULL & 0x111111111111111ULL) % 0xf;

// option 2, for at most 24-bit values in v:
c =  ((v & 0xfff) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
c += (((v & 0xfff000) >> 12) * 0x1001001001001ULL & 0x84210842108421ULL) 
     % 0x1f;

// option 3, for at most 32-bit values in v:
c =  ((v & 0xfff) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
c += (((v & 0xfff000) >> 12) * 0x1001001001001ULL & 0x84210842108421ULL) % 
     0x1f;
c += ((v >> 24) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;

Для этого метода требуется 64-разрядный процессор с быстрым модулем. Первый вариант принимает только 3 операции; второй вариант занимает 10; и третий вариант занимает 15.

0
задан MLavoie 31 December 2018 в 09:50
поделиться