直接从MSDN复制...
unsigned char _BitScanReverse(
unsigned long * Index,
unsigned long Mask
);
描述
从最高有效位 (MSB) 到最低有效位 (LSB) 搜索掩码数据以查找设置位 (1)。
返回值
如果设置了索引,则非零,如果未找到设置位,则为 0。
根据返回值描述,如果没有找到设置位,则Index=0。但是在 mask = 1 的情况下会发生什么?运行 MSDN 文档中的指令附带的示例代码,它也会返回 0,这让程序员感到困惑,因为他不知道是“未找到设置位”还是“索引等于 1”。
我在这里理解错了吗?
你误读了文档。该返回值是1或0,这取决于是否有非零位上mask
。设置位的索引在 中返回*Index
。不会产生混淆。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句