Kotlinov program za pretvaranje bajt polja u heksadecimalni

U ovom programu naučit ćete različite tehnike pretvaranja bajt polja u heksadecimalne u Kotlinu.

Primjer 1: Pretvori bajtni niz u heksadecimalnu vrijednost

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

Kada pokrenete program, izlaz će biti:

 0A020F0B

U gornjem programu imamo bajtni niz s imenom bajtovi. Da bismo bajt-niz pretvorili u heksadecimalnu vrijednost, provlačimo se kroz svaki bajt u polju i koristimo String's' format().

Mi koristimo %02Xza ispis na dva mjesta ( 02) od heksadecimalni ( X) vrijednosti i pohraniti ga u string st.

Ovo je relativno sporiji postupak za pretvorbu niza velikih bajtova. Brzo izvršavanje možemo dramatično povećati pomoću dolje prikazanih bajt operacija.

Primjer 2: Pretvorba bajt polja u heksadecimalnu vrijednost pomoću bajt operacija

 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 jednak je primjeru 1.

Evo ekvivalentnog Java koda: Java program za pretvaranje bajt polja u heksadecimalni.

Zanimljivi članci...