使用模数运算符时如何保存新数字?

时间:2014-07-08 01:18:56

标签: java

我正在编写一个带有数字/ 2的程序,然后打印剩余部分然后继续直到该数字为0.

实施例13/2余数= 1 6/2余数= 0 3/2余数= 1 1/2余数= 1

这是我写的。我尝试了一些不同的代码,但它只是导致无限循环。这似乎是编译但它只返回输入的原始数字。

public class BinaryDigits
{
    int number;
    int quotient;
    int remainder;

    public BinaryDigits(int input)
    {   
        number = input;
    }


    public int getDigits()
    {
        while (quotient > 0)
        {
            quotient = number / 2;
            remainder = number % 2;
            System.out.println(remainder);
        }
        return number;
    }


}

2 个答案:

答案 0 :(得分:1)

<强>问题:

while (quotient > 0)

始终为number / 2并且永远不会减少或增加,从而导致无限循环。

<强>溶液

int number = 13;
    int remainder;
    while (number != 0)
    {
        remainder = number % 2;
        System.out.println(remainder);
        number = number / 2;
    }

您需要计算除number并将其再次分配给number变量,这样当它达到0时,它将会打破while循环。

<强>结果:

1
0
1
1

答案 1 :(得分:0)

好的我明白了。感谢

public class BinaryDigits
{
    int number;
    int quotient;
    int remainder;

    public BinaryDigits(int input)
    {   
        number = input;
    }


    public int getDigits()
    {
        while (number > 0)
        {
            remainder = number % 2;
            System.out.println(remainder);
            number = number / 2;
        }
        return number;
    }


}