Требуется написать программу для перевода числа из X системы счисления в Y (2-16). Нельзя использовать BigInteger
и сторонние библиотеки для перевода. Сделал только от (2-10) и наоборот. Вопрос вот в чем: как перевести из 16-ой ,скажем в 10-ю? Ведь в 16-ой системе используются буквы.
Начал рассуждать так:
Есть массив букв:
public char[] arr = {'A', 'B', 'C', 'D', 'E', 'F'};
Далее идет перебор (NumStrText - получаемое на вход число):
char [] NumStrTxt = txtBoxNum.getText().toCharArray ();
for (int i = 0; i < arr.length; i++){
for (int j = 0; j < NumStrTxt.length; j++){
if(arr[i] == NumStrTxt[j]){
String constNum = i + 10 + "";
NumStrTxt[j] = constNum.charAt(i);
}
}
}
Логика такова: хотелось бы положить в массив NumStrTxt
(Char) 2 элемента при обнаружении сходства с массивом букв(arr
).Но проблема в том что charAt()
берет только один элемент, а мне надо 2 так как Строка constNum
реализует соответствие цифре A-10 B-11 и.т.д. Возможно есть другие решения задачи?
Пусть шестнадцатеричное число записано в строку. Зная длину строки, можно проходя её посимвольно слева направо умножать численное значение символа на соответствующую степень основания системы счисления. Можно реализовать с помощью switch по символу. Конечно, этот подход работает и для перевода из других с.с. в десятичную.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть Webview, он грузит страницу html в которой есть форма с textarea
Ошибка в строке public class javaapplication16 implements Runnable, не пойму в чем соль