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