直接从MSDN复制...
unsigned char _BitScanReverse(
unsigned long * Index,
unsigned long Mask
);
描述
从最高有效位(MSB)到最低有效位(LSB)搜索掩码数据中的设置位(1)。
返回值
如果设置了索引,则为非零值;如果未找到设置位,则为或0。
根据返回值描述,如果未找到设置位,则执行Index=0。但是在掩码= 1的情况下会发生什么呢?运行MSDN文档中的指令附带的示例代码时,它还返回0,这使程序员感到困惑,因为他不知道是“没有找到设置位”还是“索引等于1”。
我是不是理解错了什么?
发布于 2018-06-04 02:30:29
您误读了文档。返回值为1或0,具体取决于mask
中是否有非零位。设置位的索引在*Index
中返回。不会产生混淆。
https://stackoverflow.com/questions/50669593
复制相似问题