Programa de Kotlin para convertir una matriz de bytes a hexadecimal

En este programa, aprenderá diferentes técnicas para convertir una matriz de bytes a hexadecimal en Kotlin.

Ejemplo 1: Convertir matriz de bytes en valor hexadecimal

 fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )

Cuando ejecute el programa, la salida será:

 0A020F0B

En el programa anterior, tenemos una matriz de bytes llamada bytes. Para convertir la matriz de bytes en valor hexadecimal, recorremos cada byte de la matriz y usamos String's format().

Usamos %02Xpara imprimir dos lugares ( 02) de Xvalor hexadecimal ( ) y almacenarlo en la cadena st.

Este es un proceso relativamente más lento para la conversión de matrices de bytes grandes. Podemos aumentar drásticamente la velocidad de ejecución utilizando las operaciones de bytes que se muestran a continuación.

Ejemplo 2: Convertir matriz de bytes en valor hexadecimal mediante operaciones de bytes

 import kotlin.experimental.and private val hexArray = "0123456789ABCDEF".toCharArray() fun bytesToHex(bytes: ByteArray): String ( val hexChars = CharArray(bytes.size * 2) for (j in bytes.indices) ( val v = (bytes(j) and 0xFF.toByte()).toInt() hexChars(j * 2) = hexArray(v ushr 4) hexChars(j * 2 + 1) = hexArray(v and 0x0F) ) return String(hexChars) ) fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) val s = bytesToHex(bytes) println(s) )

La salida del programa es la misma que en el Ejemplo 1.

Aquí está el código Java equivalente: programa Java para convertir una matriz de bytes a hexadecimal.

Articulos interesantes...