2016-08-30 6 views
-2

Я пишу программу, которая позволяет конвертировать между базой 10, базой 2 и базой 8. Я решил сделать так, чтобы он мог с любой базы на любую базу, используя метод, в котором вы делите число, преобразованное база, в которую он преобразуется. Проблема в том, что если я скажу 15 в базе 2 1111, и я бы хотел преобразовать ее в базу 10, поэтому я делаю java divide 1111 на 1010, это не будет означать, что я хочу деление базы 2, и оно будет рассматривать его как стандартное базовое 10 деление.Java как разделить на разные базы?

Есть ли способ сделать арифметику в разных базах в java?

ответ

2

Арифметика является арифметикой, независимо от базы. Фактическое значение «1010» в базе 2 точно такое же, как значение «10» в базе 10, а разделение между ними работает точно так же. Основания - это всего лишь вопрос представления.

Я могу сказать вам, что если вы пытаетесь представить 10 в базе 2, например int x = 1010, вы делаете это неправильно.

Хранить и управлять внутренними значениями; вам не нужно беспокоиться о том, как компьютер представляет их себе. Просто поместите функции обертки вокруг того, где эти значения отображаются пользователю, поэтому набор функций с такими заголовками, как:

int fromBaseTen(String numberWrittenInBaseTen){...} 
String toBaseTen(int number){...} 
int fromBaseTwo(String numberWrittenInBaseTwo){...} 
String toBaseTwo(int number){...}