Как преобразовать из двойной без дробной части в шестнадцатеричную строку (база-26)?

#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 спасибо, исправлено.