数据进制转换的笔试题
/***
* 一个7进制数字,把它转换为10进制。尽量运行快,内存占用少。不能用幂运算、不能用Math类
* 抛砖引玉
*/
package test;
import java.util.Date;
public class NumberCase {
private static int convert(int num){
int total=0;
int weithValue = 1;
do{
total = total+(weithValue)*(num%10);
weithValue = (weithValue<<3)-weithValue;
num = num/10;
}while(num>0);
return total;
}
public static int convertUseMath(int num){
int total=0;
for(int i=0;num>0;i++){
//System.out.println(Math.pow(7,i));
total = total +(int)((num%10)*Math.pow(7,i));
num = num/10;
}
return total;
}
public static void main(String[] args) {
int result = 0;
long start = new Date().getTime();
for(int i=0;i<1000000;i++){
result = convert(1234568765);
//result = convertUseMath(1234568765);
}
long end = new Date().getTime();
System.out.println(result+">>>>>"+(end-start));
}
}
[ 本帖最后由 西鄙人 于 2011-7-11 22:33 编辑 ]