Program Kotlin do konwersji tablicy bajtów na szesnastkowy

W tym programie nauczysz się różnych technik konwersji tablicy bajtów na szesnastkową w Kotlinie.

Przykład 1: Konwertuj tablicę bajtów na wartość szesnastkową

 fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )

Po uruchomieniu programu wynik będzie następujący:

 0A020F0B

W powyższym programie mamy tablicę bajtów o nazwie bajty. Aby przekonwertować tablicę bajtów na wartość szesnastkową, przechodzimy przez każdy bajt w tablicy i używamy String's format().

Używamy %02Xdo wypisania dwóch miejsc ( 02) wartości Hexadecimal ( X) i zapisania jej w łańcuchu st.

Jest to stosunkowo wolniejszy proces konwersji dużej tablicy bajtów. Możemy radykalnie zwiększyć szybkość wykonania za pomocą operacji bajtowych pokazanych poniżej.

Przykład 2: Konwersja tablicy bajtów na wartość szesnastkową za pomocą operacji na bajtach

 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) )

Dane wyjściowe programu są takie same, jak w przykładzie 1.

Oto odpowiednik kodu w Javie: Program w języku Java do konwersji tablicy bajtów na szesnastkowy.

Interesujące artykuły...