这是我为while / do-while循环设置的这个集合的最后一个实验室,除了我的结果打印出来之外我完全想出它应该是什么。
public class TenToAny
{
private int base10;
private int newBase;
public TenToAny()
{
}
public TenToAny(int ten, int base)
{
base10 = ten;
newBase = base;
}
public void setNums(int ten, int base)
{
base10 = ten;
newBase = base;
}
public String getNewNum()
{
String newNum="";
int orig = base10;
while(orig > 0)
{
newNum = orig%newBase + newNum;
orig = orig/newBase;
}
return newNum;
}
public String toString()
{
String complete = base10 + " base 10 is " + getNewNum() + " in base " + newBase;
return complete;
}
}
这是我的结果应该是:
234碱基10在碱基9中为280
100碱基10在碱基2中是1100100
这些是前两个值的期望结果(基数为9,二进制为100)
这是我得到的:
234 base 10在基础9中是082
100 base 10在base 2中是0010011
答案 0 :(得分:0)
您只需添加newNum
的结尾而不是前缀。
newNum = newNum + orig%newBase;
......应该......
newNum = orig%newBase + newNum;
对于角色......
当orig%newBase > 9
时,char(55 + orig%newBase)
var nextValue = orig % newBase;
if (nextValue > 9)
{
newNum = char(55 + nextValue) + newNum;
}
else
{
newNum = nextValue + newNum;
}