首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将decimal转换为任意基本java

将decimal转换为任意基本java
EN

Stack Overflow用户
提问于 2018-10-27 06:50:26
回答 1查看 4.2K关注 0票数 0

有人能帮我回答这个问题吗?

编写一个在其MainClass中包含以下内容的程序:

  • 一种称为convertFromDecimal的方法,它接受两个整数作为参数。第一个整数是要转换的数字,第二个整数是要转换成的基数。基值可以是2(二进制)到16 (十六进制)之间的任何数字。转换后的数字将以字符串形式返回。该方法的头部如下:public static String convertFromDecimal(int number, int base)
  • In你的主方法,声明并初始化一个整数。然后通过调用方法convertFromDecimal在从2到16的所有编号系统中打印它的表示。您应该对此部分使用for循环。

提示:

  1. 记住,为了将只包含整数部分的十进制数转换为基数n,您需要对n使用连续商的重复整数除法,在每一步中保存余数,直到商为零。
  2. 请记住,基数为11-16的编号系统使用字母,以便在数字9之后继续计数。例如,基数为12的编号系统具有以下数字:{0,1,2,3…..,9,A,B}

这是我的代码。我知道这是不正确的:

代码语言:javascript
复制
public static void main(String[] args) {
    convertFromDecimal (1,2);
}

public static String convertFromDecimal(int number, int base) {
 String S="  ";
    int[] converted =new int [base] ;
    while (number>0) {
        int R;
        R=number%base;
        number=number/base;
        char Rchar ;
        switch (R){
            case 10 : Rchar='A';
            case 11 : Rchar='B';
            case 12 : Rchar='C';
            case 13 : Rchar='D';
            case 14 : Rchar='E';
            case 15 : Rchar='F';

        }
            for (int i=0;i<base;i++) 
            {
        converted[i]=R;
                R=number%base;
        }
        for (int m=0;m<base ;m++)
   System.out.print(S +converted[m]);

    }
    return S;        
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-27 07:19:44

我会像下面描述的那样转换它:http://www.robotroom.com/NumberSystems3.html

一个工作示例(我更喜欢在这里使用while循环,但要求是for

代码语言:javascript
复制
public static void main(String [] args) throws Exception {

    System.out.println(convertFromDecimal(15,3));
}

public static String convertFromDecimal(int number, int base) {
    String result = "";

    int lastQuotient = 0;

    for(int operatingNumber = number;operatingNumber > base; operatingNumber = operatingNumber/base) {
        result = getRepresantationOfLowIntValue(operatingNumber%base) + result;
        lastQuotient = operatingNumber/base;
    }

    result = getRepresantationOfLowIntValue(lastQuotient) + result;

    return result;
}

提示1中的需求可以在while循环中找到。提示2中的要求可以在下面找到。

代码语言:javascript
复制
private static String getRepresantationOfLowIntValue(int toConvert) {
    if(toConvert >= 0 && toConvert < 10) {
        return "" + toConvert;
    }

    switch(toConvert) {
        case 10 : return "A";
        case 11 : return "B";
        case 12 : return "C";
        case 13 : return "D";
        case 14 : return "E";
        case 15 : return "F";
    }

    return "Error, cannot transform number < 0 or > 15";
    //throw new IllegalArgumentException("cannot transform number < 0 or >15");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53017195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档