Rya*_*yan 5 c++ gcc bit visual-c++
来自 MSDN 从最高有效位 (MSB) 到最低有效位 (LSB) 搜索掩码数据以查找设置位 (1)。
unsigned char _BitScanReverse ( unsigned long * Index, unsigned long Mask );
参数 [out] Index 加载找到的第一个设置位 (1) 的位位置。
[in] Mask 要搜索的 32 位或 64 位值。
如果掩码为零,则返回值0;否则非零。
备注 如果找到设置位,则在第一个参数中返回找到的第一个设置位的位位置。如果没有找到设置位,则返回0;否则返回1。
请告诉我如何在OS X上实现安全快速的_BitScanReverse()函数?我必须使用汇编还是有更简单的方法?
GCC 有一些类似的内置函数:
\n\n\n\xe2\x80\x94 内置函数:int __builtin_clz (unsigned int x)
\n返回 x 中前导 0 位的数量,从最高有效位位置开始。如果 x 为 0,则结果未定义。
\n\xe2\x80\x94 内置函数:int __builtin_ctz (unsigned int x)
\n返回 x 中尾随 0 位的数量,从最低有效位位置开始。如果 x 为 0,则结果未定义
\n
如果你知道零的数量,你应该能够找出第一个 1 的位置。:-)
\n| 归档时间: |
|
| 查看次数: |
7122 次 |
| 最近记录: |