Програма Kotlin за конвертиране на байтов масив в шестнадесетичен

В тази програма ще научите различни техники за преобразуване на байтов масив в шестнадесетичен в Kotlin.

Пример 1: Преобразуване на байтовия масив в шестнадесетична стойност

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

Когато стартирате програмата, изходът ще бъде:

 0A020F0B

В горната програма имаме байтов масив с име bytes. За да конвертираме байтовия масив в шестнадесетична стойност, ние прелистваме всеки байт в масива и използваме String's format().

Използваме %02Xза отпечатване на две места ( 02) с шестнадесетична ( X) стойност и го съхраняваме в низа st.

Това е относително по-бавен процес за преобразуване на масивни байтове. Можем драстично да увеличим скоростта на изпълнение, използвайки байтови операции, показани по-долу.

Пример 2: Преобразуване на байтовия масив в шестнадесетична стойност с помощта на байтови операции

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

Резултатът от програмата е същият като пример 1.

Ето еквивалентния Java код: Java програма за конвертиране на байтов масив в шестнадесетичен.

Интересни статии...