有人能帮我回答这个问题吗?
编写一个在其MainClass中包含以下内容的程序:
public static String convertFromDecimal(int number, int base)
提示:
{0,1,2,3…..,9,A,B}
这是我的代码。我知道这是不正确的:
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;
}
发布于 2018-10-27 07:19:44
我会像下面描述的那样转换它:http://www.robotroom.com/NumberSystems3.html
一个工作示例(我更喜欢在这里使用while
循环,但要求是for
:
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中的要求可以在下面找到。
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");
}
https://stackoverflow.com/questions/53017195
复制相似问题