I dette program lærer du forskellige teknikker til at konvertere byte-array til hexadecimal i Kotlin.
Eksempel 1: Konverter Byte Array til Hex-værdi
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Når du kører programmet, vil output være:
0A020F0B
I ovenstående program har vi et byte-array ved navn bytes. For at konvertere byte-array til hex-værdi løber vi gennem hver byte i arrayet og bruger String
's format()
.
Vi bruger %02X
til at udskrive to steder ( 02
) af Hexadecimal ( X
) -værdien og gemme den i streng st.
Dette er relativt langsommere proces til konvertering af store byte-array. Vi kan dramatisk øge eksekveringshastigheden ved hjælp af byteoperationer vist nedenfor.
Eksempel 2: Konverter Byte Array til Hex-værdi ved hjælp af byteoperationer
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) )
Programmets output er den samme som i eksempel 1.
Her er den tilsvarende Java-kode: Java-program til at konvertere byte-array til hexadecimal.