Програма 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 для перетворення байтового масиву в шістнадцятковий.

Цікаві статті...