long long 中的元素数。

Number of Elements in a long long.

有没有办法在c++中获取long long中的元素个数?例如我想计算 0x993232BF 中元素的数量,答案应该是 8。提前致谢。

int count_nibbles(long long n)
{
    int r=0;
    while(n > 0)
    {
        n >>= 4;
        r++;
    }
    return r;
}

或者如果您喜欢评论中的建议:

int count_nibbles(long long n)
{
   for(; n > 0; n >>= 4) r++;
   return r;
}

如果您的目标是找到表示该数字所需的最少十六进制数字 ("nibbles"),您可以通过使用以 16 为底的对数来找到。更一般地说,您可以找到数字的数量任何基地都需要:

template <std::size_t base>
int count_digits(unsigned long long v) {
    return std::ceil(std::log(static_cast<double>(v) + 1) / std::log(base));
}