#java #string #double
Вопрос:
Мне интересно, как вы преобразуете двойную без дробной части в шестнадцатеричную строку? Каковы некоторые методы преобразования и есть ли короткие пути?
Комментарии:
1. На каком языке? Java-это не то же самое, что JavaScript.
2. @Энди, Извини, это Java
Ответ №1:
Насколько я понял, это преобразование базы 26 только в буквы с префиксом «c». Не уверен в знаке отрицательного числа.
Одним из «коротких путей» было бы использовать стандартное преобразование базы 26. Возможно, выполнить преобразование самостоятельно так же просто, и, безусловно, это даст лучшую заметку в домашнем задании.
static String hexaicosadecimal(double x) {
long n = (long)x;
String base26 = Long.toString(n, 26); // 0..9a.p
return "c" base26.codePoints()
.map(cp -> '0' <= cp amp;amp; cp <= '9' ? 'A' (cp - '0')
: 'a' <= cp amp;amp; cp < 'a' 16 ? 'A' 10 (cp - 'a')
: cp) // '-'
.collect(StringBuilder::new,
StringBuilder::appendCodePoint,
StringBuilder::append)
.toString();
}
Комментарии:
1.
mapToInt
->map
?2. @saka1029 спасибо, исправлено.