判断数值是几位数
主要是为了记录判断数值是几位数的算法, 希望能给你带来帮助
- 常用循环法-除法
int digitNum(const int& num)
{
int len = 0;
do
{
++len ;
num = num/10;
}while(num)
return len ;
}
可读性强, 主要是性能方面有所损耗(做了除法).
- 数值除掉正负,转字符串, 查看字符串的个数。
算法扩展:
判断有某个数据类型 有几个一 :常用循环法- 减一,&
template <typename T>
int bits(T num)
{
const int max = std::numeric_limits<T>().digits; //获取数据类型最大位数
int digits = 0;
while (digits <= max && num != 0)
{
num &= num - 1;
++digits;
}
return digits;
}