Решение
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() // Переворачиваем строку, так как символы добавлялись в обратном порядке
}