2016-08-26 2 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

Спасибо Чит, это работает, и я понимаю, почему его работа и математика связаны. Еще раз спасибо, что это была большая помощь, поскольку я застрял в этом вопросе. –

Смежные вопросы