În acest program, veți învăța diferite tehnici pentru a converti matricea de octeți în hexazecimal în Kotlin.
Exemplul 1: convertiți Byte Array în valoare Hex
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Când rulați programul, ieșirea va fi:
0A020F0B
În programul de mai sus, avem o matrice de octeți numită octeți. Pentru a converti matrice octet la valoarea hex, parcurgem fiecare octet în matrice și utilizarea String
lui format()
.
Folosim %02X
pentru a imprima două locuri ( 02
) de X
valoare Hexadecimal ( ) și a le stoca în șirul st.
Acesta este un proces relativ mai lent pentru conversia matricei de octeți mari. Putem crește dramatic viteza de execuție folosind operațiile de octeți prezentate mai jos.
Exemplul 2: Conversia matricei de octeți în valoare Hex folosind operații de octeți
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) )
Ieșirea programului este aceeași cu Exemplul 1.
Iată codul Java echivalent: program Java pentru a converti matricea de octeți în hexazecimal.