使用Java中的Modulus Operator将用户输入从二进制转换为十进制

时间:2016-08-26 05:11:54

标签: java modulus

我很难找到编程1课程的家庭作业的答案。赋值提示用户输入(最多4位)二进制,并将其转换为十进制等效值。不允许使用循环,条件语句,ParseInt以及除模数运算符和其他数学运算符之外的任何内容。

我遇到数学方面的问题,我想一旦我理解了如何使用模数运算符来回答我能够为其编写代码的问题。

我已经搜索过,但却找不到任何可以帮助的东西。

1 个答案:

答案 0 :(得分:0)

您应该获取每个位置的数字值,并使用2的幂来添加它们以获取原始数字。

    double num = 1110;
    double ones = Math.floor(num % 10);
    double tens = Math.floor(num/10 % 10);
    double hundreds = Math.floor(num/100 % 10);
    double thousands = Math.floor(num %10000 /1000);
    double tenThousands = Math.floor(num / 10000 % 10);

    double original = (ones * 1) +
                      (tens * 2) + 
                      (hundreds * 4) +
                      (thousands * 8);


    System.out.println(num);
    System.out.println("ones: " +ones);
    System.out.println("tens: " +tens);
    System.out.println("hundreds: " +hundreds);
    System.out.println("thousands: " + thousands);
    System.out.println("original number : " + original);