Kotlin-Programm zum Konvertieren von Byte-Arrays in Hexadezimalwerte

In diesem Programm lernen Sie verschiedene Techniken, um Byte-Arrays in Kotlin in Hexadezimalzahlen umzuwandeln.

Beispiel 1: Konvertieren Sie das Byte-Array in einen Hex-Wert

 fun main(args: Array) ( val bytes = byteArrayOf(10, 2, 15, 11) for (b in bytes) ( val st = String.format("%02X", b) print(st) ) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 0A020F0B

Im obigen Programm haben wir ein Byte-Array namens Bytes. Um das Byte-Array in einen Hex-Wert umzuwandeln, durchlaufen wir jedes Byte im Array und verwenden String's format().

Wir verwenden %02X, um zwei Stellen ( 02) des Hexadezimalwerts ( X) zu drucken und in der Zeichenfolge st zu speichern.

Dies ist ein relativ langsamerer Prozess für die Konvertierung von Arrays mit großen Bytes. Mit den unten gezeigten Byte-Operationen können wir die Ausführungsgeschwindigkeit drastisch erhöhen.

Beispiel 2: Konvertieren des Byte-Arrays mithilfe von Byte-Operationen in einen Hex-Wert

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

Die Ausgabe des Programms ist dieselbe wie in Beispiel 1.

Hier ist der entsprechende Java-Code: Java-Programm zum Konvertieren von Byte-Arrays in Hexadezimalwerte.

Interessante Beiträge...