我对Java比较陌生,这将是我在这个网站上的第一篇文章。我以前曾多次使用它,但这次我还没找到问题的答案所以我在这里... 这段代码在我的IDE(JDeveloper)中工作得很好,但出于某种原因,当我在CMD中运行它时会挂起某些参数(例如7844578642 2; 7844578642 16 - 这两个集合在IDE中工作但不在CMD中工作)。 我有什么想法吗?
class PR13_19 {
public static void main(String args[]) {
long N = 0;
int base = 0,pow = 1;
String result = "";
if(args.length != 2){
System.out.println("Please enter Number and base...");
return;
}
try{
N = Long.parseLong(args[0]);
base = Integer.parseInt(args[1]);
if(!(base >= 2 && base <= 16)) throw new NumberFormatException();
}catch(NumberFormatException | StringIndexOutOfBoundsException exc){
System.out.println("Invalid Input");
return;
}
//converts number N in base 10 to any base "base"
// if base >10 11=A,12=B,13=C....(ex.hexadecimal)
while(pow <= N/base)
pow *= base; //greatest power of "base" >= N
while(pow > 0){
if(N >= pow) {
if(N/pow > 9) result += (char)((N/pow) + 55);
else result += (N/pow);
N -= (N - (N % pow));
}
else result += "0";
pow /=base;
}
System.out.println(result);
}
}
答案 0 :(得分:0)
您必须输入在javas LONG范围内定义的数字或更改代码。
您还可以添加try / catch子句以查看发生的错误。