Dalam program ini, anda akan mempelajari teknik yang berbeza untuk menukar susunan bait ke heksadesimal di Kotlin.
Contoh 1: Tukar Array Byte ke nilai Hex
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Semasa anda menjalankan program, outputnya adalah:
0A020F0B
Dalam program di atas, kita mempunyai susunan bait bernama bait. Untuk menukar susunan bait ke nilai hex, kita mengulangi setiap bait dalam array dan menggunakan String
s format()
.
Kami menggunakan %02X
untuk mencetak dua tempat ( 02
) nilai Heksadesimal ( X
) dan menyimpannya dalam rentetan st.
Ini adalah proses yang lebih perlahan untuk penukaran array byte yang besar. Kami dapat meningkatkan kelajuan pelaksanaan secara dramatik menggunakan operasi bait seperti di bawah.
Contoh 2: Tukar Array Byte ke nilai Hex menggunakan operasi bait
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) )
Keluaran program sama seperti Contoh 1.
Inilah kod Java yang setara: Program Java untuk menukar array bait ke heksadesimal.