1

これは、この 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 です

これらは、最初の 2 つの値の期待される結果です (基数 9 の 234 AND バイナリの 100)

ここに私が得ているものがあります:

234 基数 10 は基数 9 で 082

100 基数 10 は基数 2 で 0010011 です

4

1 に答える 1

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;
}
于 2012-11-01T22:32:17.867 に答える