基本算术反向

时间:2016-03-27 01:58:49

标签: java

public class BaseArithmetic {

    int value2;
    int base2;
    int remainder;
    public void setValues2(int value2, int base2) {
        this.value2 = value2;
        this.base2 = base2;
    }

    public int tenToBase(int n) {
        while (value2 >= base2) {
            remainder = value2%base2;
            value2 = value2/base2;
            System.out.print(remainder);
        }
        return value2;
    }
}

测试仪:

import java.util.Scanner;
public class BaseArithmeticTester {

    public static void main(String[] args) {
        BaseArithmetic Base = new BaseArithmetic();
        Scanner in = new Scanner(System.in);
        System.out.print("Please enter the value on 10th base: ");
        int value2 = in.nextInt();
        System.out.print("Please enter which base do you want to convert: ");
        int base2 = in.nextInt();
        Base.setValues2(value2, base2);
        System.out.println(Base.tenToBase(value2));
    }
}

我写了这个代码来将一个值从第10个基数转换为任意基数,但是例如当我说19为值而2为基数时,11001是输出但它必须是10011所以我怎么能扭转这类事物?有没有办法将System.out输出转换为字符串,以便我可以使用for循环来反转它?

2 个答案:

答案 0 :(得分:0)

没有必要设置基数。已经util包含了可以帮助你的基数。

如果您需要将输入转换为6基数,请执行此操作

 int value2 = in.nextInt(6);

您可以从Scanner Class

获取有关基数的所有信息

public int nextInt(int radix)

参数:

radix - 用于将标记解释为int值的基数

答案 1 :(得分:0)

我相信System.out的内容放在一个内部缓冲区中,该内部缓冲区会发送到控制台,因此无法在运行时将其反转。

我认为最好的方法是简单地将值附加到String

public int tenToBase(int n) {
    String temp = ""
    while (value2 >= base2) {
        remainder = value2%base2;
        value2 = value2/base2;
        temp = remainder + temp;
    }
    System.out.println(temp);
    return value2;
}