Преобразование строки Base-16 в Base-32 в Android
Я хочу преобразовать строку base16 в base32 String. Например, если у меня есть строка base-16 - "000000000288", теперь я хочу преобразовать ее в аналог base-32 ("K-8").
Есть сайт, который делает это:
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
можно сохранить, я предлагаю вам запустить собственную функцию для преобразования базы для дробной части.