Java判断任意一个int值的位数

有时候我们会需要获取任意一个int值(或者其他值)的位数。别问我什么时候需要,当你需要的时候那就是需要的时候。

那么我们现在用java实现一下这个小功能


Talk is cheap, Let`s code!


class SizeOfInt {
    final static int[] sizeTable = { 9,99,999,9999,99999,999999,9999999,
                        99999999,999999999,Integer.MAX_VALUE};    
    static int sizeOfInt(int x) {    
        for (int i = 0; ; i++){
            if (x <= sizeTable[i]){
                return i + 1;
            }
        }
    }  
    //测试一下  
    public static void main(String[] args) {
       System.out.println("请输入一个int数值(注意int数值的取值范围):");
       Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        System.out.println("您输入的是一个"+sizeOfInt(a)+"位数!");
    }    
} 

程序非常简单:

  1. 首先定义一个数组,在里面放上每一位数的最大数,直到int所支持的最大值。比如9是一位数里面最大的,99是二位数里面最大的,以此类推。
  2. 将输入的int数值与提前定义好的数组对比,从一位数开始对比,如果比一位数大便继续对比二位数(所输入的值得位数与数组的下标关联,一位数下标为0,二位数下标为1...),以此类推,将【下标+1】输出即为所输入的int值得位数。
int数值可以任意换成float或者double,注意每种变量的取值范围与数组对应即可。

你可能感兴趣的:(Java判断任意一个int值的位数)