一尘不染

求整数的位数

algorithm

查找正整数的位数的最佳方法是什么?

我发现了这3种基本方法:

  • 转换为字符串
        String s = new Integer(t).toString(); 
    int len = s.length();
  • for循环
        for(long long int temp = number; temp >= 1;)
    {
        temp/=10;
        decimalPlaces++;
    } 
  • 对数计算
    digits = floor( log10( number ) ) + 1;
    

在大多数语言中,您都可以在其中计算log10(x)= ln(x)/ ln(10)。

首先,我认为字符串方法是最肮脏的方法,但是我想得越多,我就认为这是最快的方法。还是?


阅读 286

收藏
2020-07-28

共1个答案

一尘不染

总有这种方法:

n = 1;
if ( i >= 100000000 ) { n += 8; i /= 100000000; }
if ( i >= 10000     ) { n += 4; i /= 10000; }
if ( i >= 100       ) { n += 2; i /= 100; }
if ( i >= 10        ) { n += 1; }
2020-07-28