Ada, miembro de este gran staff, nos ha hecho el favor de redactar esta crónica ya que domina a la perfección dicho tema.
Solución:
Todavía puede usar la conversión de Java llamando al static función en java.lang.Integer
:
val hexString = java.lang.Integer.toHexString(i)
Y, a partir de Kotlin 1.1, hay una función en la biblioteca estándar de Kotlin que también realiza la conversión:
fun Int.toString(radix: Int): String
Devuelve un string representación de este
Int
valor en el especificadoradix
.
Tenga en cuenta, sin embargo, que esto seguirá siendo diferente de Integer.toHexString()
porque este último realiza la conversión sin firmar:
println((-50).toString(16)) // -32
println(Integer.toHexString(-50)) // ffffffce
Pero con los tipos experimentales sin firmar de Kotlin, ahora es posible obtener el mismo resultado de la conversión de números negativos sin firmar que con Integer.toHexString(-50)
:
println((-50).toUInt().toString(16)) // ffffffce
Si necesita agregar cero antes de los bytes que son menos de 10 (hexadecimal), por ejemplo, necesita string – “0E” luego use:
"%02x".format(14)
Simplemente puedes hacerlo así:
"%x".format(1234)
Nos encantaría que puedieras dar visibilidad a esta sección si te valió la pena.