Преобразование строки Base-16 в Base-32 в Android

Я хочу преобразовать строку base16 в base32 String. Например, если у меня есть строка base-16 - "000000000288", теперь я хочу преобразовать ее в аналог base-32 ("K-8").

Есть сайт, который делает это:

http://www.unitconversion.org/unit_converter/numbers.html

2 ответа

Решение

Я думаю, что вы можете сделать это так:

int number = Integer.parseInt("000000000288", 16);
String base32 = Integer.toString(number, 32);

Изменить: Извините, я забыл добавить параметр radix в первой строке. Я изменил это сейчас.

Я считаю, что BigInteger из Java - лучший среди них для манипуляций с битами. Среди его широкого использования (главным образом с хранением огромных чисел, которое может позволить ваш стек памяти и для его широкого спектра поддерживаемых операций), у вас есть опция для базового преобразования от 2 до 36.

Пример кода:

BigInteger num=new BigInteger("000000000288",16);     //Store as Hexa

//Display the result using BigInteger.toString(radix)
System.out.println("Result = "+num.toString(32));    //Showing result in 32 base

Конечно, если вы имеете дело с числами, имеющими дробную часть, вам придется использовать метод Magicode Integer.toString(radix), Или если ваш номер больше, чем что int можно сохранить, я предлагаю вам запустить собственную функцию для преобразования базы для дробной части.

Другие вопросы по тегам