Πρόγραμμα Kotlin για μετατροπή συστοιχίας Byte σε δεκαεξαδικό

Σε αυτό το πρόγραμμα, θα μάθετε διαφορετικές τεχνικές για να μετατρέψετε έναν πίνακα byte σε δεκαεξαδικό στο Kotlin.

Παράδειγμα 1: Μετατροπή συστοιχίας Byte σε τιμή Hex

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 0A020F0B

Στο παραπάνω πρόγραμμα, έχουμε έναν πίνακα byte που ονομάζεται bytes. Για τη μετατροπή πίνακα byte σε δεκαεξαδική τιμή, εμείς βρόχο μέσα από κάθε byte στη συστοιχία και χρήση String«s format().

Χρησιμοποιούμε %02Xγια να εκτυπώσουμε δύο θέσεις ( 02) της δεκαεξαδικής Xτιμής ( ) και να την αποθηκεύσουμε στη συμβολοσειρά st.

Αυτή είναι σχετικά πιο αργή διαδικασία για μετατροπή συστοιχιών μεγάλου byte. Μπορούμε να αυξήσουμε δραματικά την ταχύτητα εκτέλεσης χρησιμοποιώντας λειτουργίες byte που φαίνονται παρακάτω.

Παράδειγμα 2: Μετατροπή συστοιχίας Byte σε τιμή Hex χρησιμοποιώντας λειτουργίες byte

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

Η έξοδος του προγράμματος είναι ίδια με το Παράδειγμα 1.

Εδώ είναι ο ισοδύναμος κώδικας Java: πρόγραμμα Java για μετατροπή πίνακα byte σε δεκαεξαδικό.

ενδιαφέροντα άρθρα...