Program Kotlin na prevod bytového poľa na hexadecimálny

V tomto programe sa naučíte rôzne techniky na prevod bajtového poľa na hexadecimálne v Kotline.

Príklad 1: Prevod bajtového poľa na hexadecimálnu hodnotu

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

Po spustení programu bude výstup:

 0A020F0B

Vo vyššie uvedenom programe máme bajtové pole s názvom bajty. Ak chcete previesť bajtové pole na hexadecimálnu hodnotu, prešli sme cez každý bajt v poli a použili znak String's format().

Zvykneme %02Xtlačiť dve miesta ( 02) Hexadecimálnej ( X) hodnoty a ukladať ich do reťazca st.

Toto je relatívne pomalší proces pri prevode veľkých bajtových polí. Rýchlosť vykonávania môžeme dramaticky zvýšiť pomocou bajtových operácií uvedených nižšie.

Príklad 2: Prevod bajtového poľa na hexadecimálnu hodnotu pomocou bajtových operácií

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

Výstup programu je rovnaký ako v príklade 1.

Tu je ekvivalentný kód Java: Program Java na prevod bajtového poľa na hexadecimálne.

Zaujímavé články...