__int128_t的计数前导零错误

时间:2016-01-10 09:43:10

标签: leading-zero int128

#include <iostream>
#include <stdint.h>
using namespace std;
typedef __int128_t int128_t;
int main() {
  int128_t y = 0;
  cout<<__builtin_clzll(static_cast<unsigned long long>(y>>64)) <<endl;
  cout<<__builtin_clzll(static_cast<unsigned long long>(0)) <<endl;
}

输出: 63 64

gcc version 5.3.0 20151204

为什么结果有误?有没有其他方法来计算int128_t的前导零。

0 个答案:

没有答案