Программа 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) значения Hexadecimal ( 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 для преобразования массива байтов в шестнадцатеричный.

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