转换数字系统提供的结果不正确

时间:2014-10-05 06:48:37

标签: java eclipse

我编写了一个转换为数字系统的程序。我想从十进制转换为十二进制。

起始值:123。 预期产出:A3

不幸的是我没有得到正确的结果。但为什么?我不明白这个错误?

有人可以帮助我并解释错误吗?

public static String deziToDuo(String duo) {

 String s = "0123456789ABCDEF";

 int rest;
 String result = "";
 boolean break = true;

 int changeToInt = Integer.parseInt(duo);

 while (break) {

    rest = changeToInt % 12;

    char c = (char) s.indexOf(rest);

    StringBuilder sb = new StringBuilder(c);

    result = sb.reverse().toString();
    changeToInt = changeToInt / 12;

    if (changeToInt  == 0){

           break = false;
    }

 }  

 return result; 
 }

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

  • break是Java中的保留关键字,将变量的名称更改为其他名称。
  • 每次迭代都会覆盖sb。您应该在循环之前创建它并使用例如insert()在结果中首先插入下一个字符。
  • 您使用indexOf()代替charAt()

我会留给您实施更改。