计算正整数位数

2021/11/27 23:12:47

本文主要是介绍计算正整数位数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

如何计算正整数的位数

1、在Java中Integer类给出了一种方式,比较当前数字和特定数字的值,来判断出当前数字的位数:

1     final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
2                                       99999999, 999999999, Integer.MAX_VALUE };
3 
4     // Requires positive x
5     static int stringSize(int x) {
6         for (int i=0; ; i++)
7             if (x <= sizeTable[i])
8                 return i+1;
9     }

对于负数,则先判断是否是Integer.MIN_VALUE,是则直接返回,否则转为正数判断。

 

2、对于Long类型的数字,该如何计算

 源码如下:

 1     // Requires positive x
 2     static int stringSize(long x) {
 3         long p = 10;
 4         for (int i=1; i<19; i++) {
 5             if (x < p)
 6                 return i;
 7             p = 10*p;
 8         }
 9         return 19;
10     }

19代表long类型最大数字的位数,其实long类型和int类型的位数比较思路是相通的,都是在与每个临界数字比较,得出数字位数。

 

一般人往往想到将数字转成string类型,计算string长度,但这样的效率是较低的;因为将数字转成string类型的过程中,就使用到了上述代码中的stringSize()方法,具体可见代码。



这篇关于计算正整数位数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程