_BitScanForward(64)的使用得include头文件intrin.h
unsigned char _BitScanForward( unsigned long * Index, unsigned long Mask ); unsigned char_BitScanForward64( unsigned long * Index, unsigned __int64 Mask );
_BitScanForward(64)函数的作用是以2进制的形式从Mask的最低有效位(least significant bit)向最高有效位(most significant bit )搜索,直到找到1.
eg.
unsigned long index0, index1, index2;
unsigned long mask0 = 1B;
unsinged long mask1 = 100B;
unsigned long mask2 = 1100B;
_BitScanForward(&index0, mask0);
_BitScanForward(&index1, mask1);
_BitScanForward(&index2, mask2);
得到的结果是:
index0 = 0; //因为1出现在第一位
index1=index2 = 2;//100B和1100B的第一个1都是出现在第三位
note:在编程中计数都是从0开始,所以出现在第3位的1得到的结果是2.