Kotlin Programı Byte Dizisini Onaltılık Tabana Çevirme

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 %02Xiki yerde (yazdırmak için 02Onaltı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ı.

Ilginç makaleler...