Bu programda, Kotlin'de bayt dizisini onaltılıya dönüştürmek için farklı teknikler öğreneceksiniz.
Örnek 1: Bayt Dizisini Hex değerine dönüştürme
fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )
Programı çalıştırdığınızda, çıktı:
0A020F0B
Yukarıdaki programda bayt adında bir bayt dizimiz var. Bayt dizisini onaltılık değere dönüştürmek için, dizideki her bayt arasında döngü yapıp String
's' i kullanırız format()
.
Biz kullanmak %02X
iki yerde (yazdırmak için 02
Onaltılık (arasında) X
) değeri ve dize st içinde saklayın.
Bu, büyük bayt dizisi dönüşümü için nispeten daha yavaş bir işlemdir. Aşağıda gösterilen bayt işlemlerini kullanarak yürütme hızını önemli ölçüde artırabiliriz.
Örnek 2: Bayt işlemlerini kullanarak Bayt Dizisini Hex değerine dönüştürme
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) )
Programın çıktısı Örnek 1 ile aynıdır.
İşte eşdeğer Java kodu: Bayt dizisini onaltılıya dönüştürmek için Java programı.