2016-08-26 14 views
0

我很难找出编程1类的作业分配的答案。分配提示用户输入二进制(最多4位),并将其转换为十进制等值。不允许使用循环,条件语句,ParseInt以及除模数运算符和其他数学运算符以外的任何其他语言。使用Java中的模运算符将用户输入从二进制转换为十进制

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

我已经搜索,一直没能找到任何能够提供帮助的东西。

+0

请给我们一些代码。 –

+0

请参阅http://stackoverflow.com/a/11419738/2310289 –

+0

模数运算符不适合此问题。 – 4castle

回答

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); 
+0

谢谢你,工作,我理解为什么它的工作和数学涉及。再次感谢你,这是一个很大的帮助,因为我被困在这个问题上。 –

相关问题