Programma Kotlin per convertire array di byte in esadecimali

In questo programma imparerai diverse tecniche per convertire un array di byte in esadecimale in Kotlin.

Esempio 1: conversione di array di byte in valore esadecimale

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

Quando esegui il programma, l'output sarà:

 0A020F0B

Nel programma sopra, abbiamo un array di byte chiamato bytes. Per convertire un array di byte in un valore esadecimale, eseguiamo un ciclo su ogni byte dell'array e utilizziamo String's format().

Usiamo %02Xper stampare due posizioni ( 02) di Xvalore esadecimale ( ) e memorizzarlo nella stringa st.

Questo è un processo relativamente più lento per la conversione di array di grandi byte. Possiamo aumentare notevolmente la velocità di esecuzione utilizzando le operazioni sui byte mostrate di seguito.

Esempio 2: conversione della matrice di byte in valore esadecimale utilizzando operazioni sui byte

 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) )

L'output del programma è lo stesso dell'esempio 1.

Ecco il codice Java equivalente: programma Java per convertire array di byte in esadecimali.

Articoli interessanti...