Ответ 1
Что касается Kotlin 1.0.6, kotlin-stdlib
не имеет для этого функций, и для преобразования необходимо использовать классы java.lang.*
:
val hexString = java.lang.Integer.toHexString(i)
Но текущие источники Kotlin содержат эту функцию:
@SinceKotlin("1.1")
@kotlin.internal.InlineOnly
public inline fun Int.toString(radix: Int): String =
java.lang.Integer.toString(this, checkRadix(radix))
Похоже, что он, скорее всего, будет добавлен в Kotlin 1.1 stdlib наряду со многими другими, в том числе для разбора чисел с помощью настраиваемого радиуса (хотя для функций без гексагона нет никаких функций). Затем вы сможете вызвать его так, чтобы получить шестнадцатеричную строку:
myInt.toString(16)
Обратите внимание, однако, что это будет по-прежнему отличаться от Integer.toHexString()
, потому что последнее выполняет беззнаковое преобразование:
println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce