C++ gcc _builtin 函数给出了意想不到的答案

ruc*_*h22 0 gcc built-in c++14

Int64_t n=7;打印后的__builtin_clz(n)答案是29而不是预期的答案61

mel*_*ene 5

https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html指出:

内置功能: int __builtin_clz (unsigned int x)

Ien被隐式转换为 an ,unsigned int因为这是函数所需要的。

还有int __builtin_clzll (unsigned long long),如果你需要更多的比特。