Well why this then? They should be intrinsics...
On 2009-12-07, at 8:43 PM, Timo Kreuzer wrote:
+unsigned char BitScanForward(ULONG * Index, unsigned long Mask) +{
- *Index = 0;
- while (Mask && ((Mask & 1) == 0))
- {
Mask >>= 1;++(*Index);- }
- return Mask ? 1 : 0;
+}
+unsigned char BitScanReverse(ULONG * const Index, unsigned long Mask) +{
- *Index = 0;
- while (Mask && ((Mask & (1 << 31)) == 0))
- {
Mask <<= 1;++(*Index);- }
- return Mask ? 1 : 0;
+}
Best regards, Alex Ionescu