Требуется написать программу для перевода числа из 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 по символу. Конечно, этот подход работает и для перевода из других с.с. в десятичную.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники