🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Kotlin 程序:将字节数组转换为十六进制 > 原文: [https://www.programiz.com/kotlin-programming/examples/convert-byte-array-hexadecimal](https://www.programiz.com/kotlin-programming/examples/convert-byte-array-hexadecimal) #### 在此程序中,您将学习在 Kotlin 中将字节数组转换为十六进制的不同技术。 ## 示例 1:将字节数组转换为十六进制值 ```kt fun main(args: Array<String>) { val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) { val st = String.format("%02X", b) print(st) } } ``` 运行该程序时,输出为: ```kt 0A020F0B ``` 在上面的程序中,我们有一个名为`bytes`的字节数组。 要将字节数组转换为十六进制值,我们遍历数组中的每个字节,并使用`String`的`format()`。 我们使用`%02X`打印十六进制(`X`)值的两个位置(`02`)并将其存储在字符串`st`中。 对于大字节数组转换,这是相对较慢的过程。 我们可以使用下面显示的字节操作大大提高执行速度。 * * * ## 示例 2:使用字节操作将字节数组转换为十六进制值 ```kt 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 代码: [Java 程序:将字节数组转换为十六进制](/java-programming/examples/convert-byte-array-hexadecimal "Java program to convert byte array to hexadecimal")。