java - 将数字从 10 进制转换为 N

标签 java

此代码是我必须开发的项目的一部分。我需要编写一个 java 方法,将一个数字(基数 10)转换为 n 基数中的另一个数字。这是类的代码:

public class converter {

    public int from_10_to_n(int base, int newbase) {

       int k = 0;
       String res = "";
       String output = "";

       do {                        //Below I explain what I'm doing here
        base /= newbase;   
        k = base % newbase;
        res += String.valueOf(k);
       } while (base != 0);

       for(int i=res.length()-1; i>-1; i--) {
        output += res.charAt(i);
       }

       return Integer.parseInt(output);
    }

我想到了这样制作程序:

enter image description here

do {} while(); 循环将数字相除并将余数保存在 k 中。然后我创建一个 for 循环来反转字符串 res(其中包含提醒)。

顺便说一句,当我在我的 main 中调用该方法时,我遗漏了最后一位数字。我的意思是:

converter k = new converter();
int e = k.from_10_to_n(a /*base 10 number*/, b /*Base n number*/);

System.out.println(a+" -> "+b+" is " + e);

使用这段代码,如果我想将 231 转换为基数 4,我得到的结果是 321 而不是 3213。我检查了我的代码,但找不到解决方案。有什么想法吗?

我在其他基地也有同样的错误。例如 31(基数 10)是 11111(基数 2),但我的程序返回 1111

最佳答案

翻转循环中前两行的顺序;通过先进行除法,您将失去第一个余数。但随后您需要处理最后的剩余部分。

关于java - 将数字从 10 进制转换为 N,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24563998/

相关文章:

java - 如何使用不同的键从Map中获取对象?

java - 使用 boolean 值退出循环然后重做循环

java - 使用 spring boot 对数据库的错误查询

java - JVM跳转指令的偏移量怎么会是32768呢?

java - Java中每种类型的对象类

java - onActivityResult byte[] data 不管图片多大都返回null

java - 如何从 php 文件中获取响应?

java - 通过 gradle 使用不同的配置文件创建许多 war

java - android sqlite 异常 : column 'satze' does not exist

java - 设置布局背景时,共享元素转换将无法正常工作