Kotlin-program för att konvertera Byte Array till Hexadecimal

I det här programmet lär du dig olika tekniker för att konvertera byte-array till hexadecimal i Kotlin.

Exempel 1: Konvertera Byte Array till Hex-värde

 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ör programmet blir resultatet:

 0A020F0B

I ovanstående program har vi en byte-array som heter byte. För att konvertera byte-array till hex-värde slingrar vi genom varje byte i arrayen och använder String's format().

Vi använder för %02Xatt skriva ut två platser ( 02) av Hexadecimal ( X) -värdet och lagra det i strängen st.

Detta är relativt långsammare för konvertering av storbyte-array. Vi kan dramatiskt öka körningshastigheten med hjälp av byteoperationer som visas nedan.

Exempel 2: Konvertera Byte Array till Hex-värde med hjälp av 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 resultat är samma som i exempel 1.

Här är motsvarande Java-kod: Java-program för att konvertera byte-array till hexadecimal.

Intressanta artiklar...