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));
}
有没有办法在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));
}