ฌอนแอนเดอร์สันตีพิมพ์แฮ็กแบบทวิปสองบิตที่มีอัลกอริทึมของ Eric Cole เพื่อค้นหาของ -bit จำนวนเต็มในการดำเนินการด้วยการคูณและค้นหา
อัลกอริทึมนั้นอาศัยหมายเลข "เวทมนต์" จากลำดับ De Bruijn ใครสามารถอธิบายคุณสมบัติทางคณิตศาสตร์พื้นฐานของลำดับที่ใช้ที่นี่ได้ไหม
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];