Kotlin程序?qū)⒆止?jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制

Kotlin 實(shí)例大全

在此程序中,您將學(xué)習(xí)在Kotlin中將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制的不同方法。

示例1:將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制值

fun main(args: Array<String>) {

    val bytes = byteArrayOf(10, 2, 15, 11)

    for (b in bytes) {
        val st = String.format("%02X", b)
        print(st)
    }

}

運(yùn)行該程序時(shí),輸出為:

0A020F0B

在上面的程序中,我們有一個(gè)名為bytes的字節(jié)數(shù)組。為了將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制值,我們循環(huán)遍歷數(shù)組中的每個(gè)字節(jié),并使用String的format()。

我們使用%02X打印兩個(gè)位置(02)的十六進(jìn)制(X)值,并將其存儲(chǔ)在字符串st中。

對(duì)于大字節(jié)數(shù)組轉(zhuǎn)換,這是相對(duì)較慢的過(guò)程。我們可以使用下面顯示的字節(jié)操作大大提高執(zhí)行速度。

示例2:使用字節(jié)操作將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制值

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

    val bytes = byteArrayOf(10, 2, 15, 11)

    val s = bytesToHex(bytes)
    println(s)

}

該程序的輸出與示例1相同。

這是等效的Java代碼:將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制的Java程序。

Kotlin 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清