https://leetcode.com/problems/convert-a-number-to-hexadecimal/description/ Easy

Решение

fun toHex(num: Int): String {
    if (num == 0) return "0"  // Специальный случай для нуля

    val hexChars = "0123456789abcdef"  // Шестнадцатеричные символы
    var result = StringBuilder()
    var n = num

    // Выполняем 8 итераций для 32-битного числа, чтобы избежать зацикливания при отрицательных числах
    while (n != 0 && result.length < 8) {
        val hexDigit = n and 0xF  // Получаем последние 4 бита числа
        result.append(hexChars[hexDigit])  // Добавляем соответствующий шестнадцатеричный символ
        n = n ushr 4  // Выполняем логический сдвиг вправо на 4 бита
    }

    return result.reverse().toString()  // Переворачиваем строку, так как символы добавлялись в обратном порядке
}