Σε αυτό το πρόγραμμα, θα μάθετε διαφορετικές τεχνικές για να μετατρέψετε έναν πίνακα byte σε δεκαεξαδικό στην Java.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:
- Πίνακες Java
- Τάξη και αντικείμενα Java
Παράδειγμα 1: Μετατροπή συστοιχίας Byte σε τιμή Hex
public class ByteHex ( public static void main(String() args) ( byte() bytes = (10, 2, 15, 11); for (byte b : bytes) ( String st = String.format("%02X", b); System.out.print(st); ) ) )
Παραγωγή
0A020F0B
Στο παραπάνω πρόγραμμα, έχουμε έναν πίνακα byte που ονομάζεται bytes. Για τη μετατροπή πίνακα byte σε μια τιμή hex, εμείς βρόχο μέσα από κάθε byte στη συστοιχία και χρήση String
«s format()
.
Χρησιμοποιούμε %02X
για να εκτυπώσουμε δύο θέσεις ( 02
) της δεκαεξαδικής X
τιμής ( ) και να την αποθηκεύσουμε στη συμβολοσειρά st.
Αυτή είναι μια σχετικά πιο αργή διαδικασία για μετατροπή συστοιχιών μεγάλου byte. Μπορούμε να αυξήσουμε δραματικά την ταχύτητα εκτέλεσης χρησιμοποιώντας λειτουργίες byte που φαίνονται παρακάτω.
Παράδειγμα 2: Μετατροπή συστοιχίας Byte σε τιμή Hex χρησιμοποιώντας λειτουργίες byte
public class ByteHex ( private final static char() hexArray = "0123456789ABCDEF".toCharArray(); public static String bytesToHex(byte() bytes) ( char() hexChars = new char(bytes.length * 2); for ( int j = 0; j >> 4); hexChars(j * 2 + 1) = hexArray(v & 0x0F); ) return new String(hexChars); ) public static void main(String() args) ( byte() bytes = (10, 2, 15, 11); String s = bytesToHex(bytes); System.out.println(s); ) )
Η έξοδος του προγράμματος είναι ίδια με το Παράδειγμα 1 .