শন অ্যান্ডারসন প্রকাশিত বিট হ্যাক twiddling এরিক কোল এর এলগরিদম ধারণকারী এটি একটি এর -বিট পূর্ণসংখ্যা মধ্যে সংখ্যাবৃদ্ধি এবং লুকআপ অপারেশন।
অ্যালগরিদম ডি ব্রুইজন ক্রম থেকে একটি "যাদু" সংখ্যার উপর নির্ভর করে। কেউ কি এখানে ব্যবহার করা অনুক্রমের মৌলিক গণিতের বৈশিষ্ট্য ব্যাখ্যা করতে পারে?
uint32_t v; // find the log base 2 of 32-bit v
int r; // result goes here
static const int MultiplyDeBruijnBitPosition[32] =
{
0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30,
8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31
};
v |= v >> 1; // first round down to one less than a power of 2
v |= v >> 2;
v |= v >> 4;
v |= v >> 8;
v |= v >> 16;
r = MultiplyDeBruijnBitPosition[(uint32_t)(v * 0x07C4ACDDU) >> 27];