62,634
社区成员




private static int[] TENS = new int[] {
0, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000
};
static int len(int x) {
if (x == Integer.MIN_VALUE) {
// Integer.MIN_VALUE 由于补码的限制,这个32bit数的绝对值等于自己,所以特殊处理
return 10;
}
x = x < 0 ? -x : x;
for (int i = 1; i < TENS.length - 1; i++) {
if (x < TENS[i]) {
return i;
}
}
return TENS.length;
}
int num = 980283828;
int test =32 - Integer.numberOfLeadingZeros(num);
int j;
for(j = 0;j < 10; j++){
if(test < 3 * (j + 1)+1 )
if(num<(int)Math.pow(10,j)){
System.out.println(j );break;
}else{
System.out.println(j+1);break;
}
}
System.out.println("over");
int num = -1111;
int sum = 0;
do {
num /= 10;
sum++;
} while (num != 0);
System.out.println(sum);