Kotlinov program za pretvorbo bajtnega polja v šestnajstiško

V tem programu se boste v Kotlinu naučili različnih tehnik pretvorbe bajtnega polja v šestnajstiško.

Primer 1: Pretvori bajtno matriko v šestnajstiško vrednost

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

Ko zaženete program, bo rezultat:

 0A020F0B

V zgornjem programu imamo bajtno matriko z imenom bytes. Če želite pretvoriti bajt array hex vrednosti, smo zanko skozi vsak bajt v matriki in uporabi String"-e format().

Za %02Xtiskanje dveh mest ( 02) šestnajstiške ( X) vrednosti uporabimo in jih shranimo v niz st.

To je razmeroma počasnejši postopek za pretvorbo velikih bajtov. Hitrost izvajanja lahko dramatično povečamo z uporabo bajtnih operacij, prikazanih spodaj.

Primer 2: Pretvorite bajtno polje v šestnajstiško vrednost z uporabo bajtnih operacij

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

Rezultat programa je enak kot v primeru 1.

Tu je enakovredna koda Java: program Java za pretvorbo bajtnega polja v šestnajstiško.

Zanimive Članki...