In dit programma leer je verschillende technieken om byte-array naar hexadecimaal te converteren in Kotlin.
Voorbeeld 1: converteer Byte Array naar Hex-waarde
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Wanneer u het programma uitvoert, is de uitvoer:
0A020F0B
In het bovenstaande programma hebben we een byte-array met de naam bytes. Om byte-array naar hexadecimale waarde te converteren, doorlopen we elke byte in de array en gebruiken String
's format()
.
We gebruiken %02X
om twee plaatsen ( 02
) van hexadecimale ( X
) waarde af te drukken en op te slaan in de string st.
Dit is een relatief langzamer proces voor arrayconversie met grote bytes. We kunnen de uitvoeringssnelheid drastisch verhogen met behulp van onderstaande bytebewerkingen.
Voorbeeld 2: converteer Byte Array naar Hex-waarde met behulp van bytebewerkingen
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) )
De output van het programma is hetzelfde als in Voorbeeld 1.
Hier is de equivalente Java-code: Java-programma om byte-array naar hexadecimaal te converteren.