Dans ce programme, vous apprendrez différentes techniques pour convertir un tableau d'octets en hexadécimal dans Kotlin.
Exemple 1: Convertir un tableau d'octets en valeur hexadécimale
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Lorsque vous exécutez le programme, la sortie sera:
0A020F0B
Dans le programme ci-dessus, nous avons un tableau d'octets nommé bytes. Pour convertir un tableau d'octets en valeur hexadécimale, nous parcourons chaque octet du tableau et utilisons String
les format()
.
Nous utilisons %02X
pour imprimer deux emplacements ( 02
) de la X
valeur hexadécimale ( ) et la stocker dans la chaîne st.
Il s'agit d'un processus relativement plus lent pour la conversion de grand tableau d'octets. Nous pouvons considérablement augmenter la vitesse d'exécution en utilisant les opérations d'octets indiquées ci-dessous.
Exemple 2: Convertir un tableau d'octets en valeur hexadécimale à l'aide d'opérations sur octets
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 sortie du programme est la même que dans l'exemple 1.
Voici le code Java équivalent: programme Java pour convertir un tableau d'octets en hexadécimal.