Beberapa kode dalam artikel ini dikutip dari internet dan sedikit terorganisir untuk mengonversi antara byte dan heksadesimal.
/** * Referensi Apache Commons <a * href = "http://commons.apache.org/codec/"> http://commons.apache.org/codec/ </a> * byte menempati 8 bit, dan karakter heksadesimal menempati 4 bit. Oleh karena itu, satu byte dapat dikonversi menjadi dua karakter heksadesimal yang sesuai, yaitu, 4 byte 4 dan rendah yang tinggi dikonversi menjadi karakter heksadesimal yang sesuai masing -masing H dan L, dan digabungkan. Hal yang sama berlaku untuk transformasi yang berlawanan. **/kelas publik hex {/*** output untuk menetapkan karakter hex*/private static final char [] digits_lower = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', ',', ',' don / *** Output untuk membangun karakter hex*/ private static final char [] digits_lower = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; /*** Konversi array byte ke array karakter heksadesimal. * * Karena dua karakter digunakan untuk mewakili byte, panjang char [] yang dikembalikan akan dua kali panjang byte parameter []. * * @param Data * byte [] digunakan untuk mengonversi ke karakter hex * @return char [] berisi karakter hex */ public static char [] encodehex (final byte [] data) {return encodehex (data, true); } /*** Konversi array byte ke array karakter hex. * * Karena dua karakter digunakan untuk mewakili byte, panjang char [] yang dikembalikan akan dua kali panjang byte parameter []. * * @param data * byte[] for converting to hex characters * @param toLowerCase * <code>true</code> Transfer to lowercase format, <code>false</code> Transfer to uppercase format* @return char[] containing hex characters */ public static char[] encodeHex(final byte[] data, final boolean toLowerCase) { return encodeHex(data, toLowerCase ? DIGITS_LOWER : Digit_upper); } /*** Konversi array byte ke array karakter hex. * * Karena dua karakter digunakan untuk mewakili byte, panjang char [] yang dikembalikan akan dua kali panjang byte parameter []. * * @param Data * byte [] untuk mengonversi ke karakter hex * @param Todigits * alfabet untuk mengendalikan output * @return char [] berisi karakter hex */ char statis yang dilindungi [] encodehex (data byte akhir [], char akhir [] todigits) {int l = data.length; char [] out = char baru [l << 1]; // Dua karakter membentuk nilai hex. untuk (int i = 0, j = 0; i <l; i ++) {out [j ++] = Todigits [(0xf0 & data [i]) >>> 4]; out [j ++] = Todigits [0x0f & data [i]]; } kembali; } /*** Konversi array byte ke string hexadecimal. * * Karena dua karakter digunakan untuk mewakili byte, panjang string yang dikembalikan akan dua kali panjang byte parameter []. * * @param data * byte [] untuk mengonversi ke karakter hex * @return hex string */ public static string encodeHexSTR (data byte [] final) {return encodehexstr (data, true); } /*** Konversi array byte ke string hex. * * Karena dua karakter digunakan untuk mewakili byte, panjang string yang dikembalikan akan dua kali panjang byte parameter []. * * @param Data * byte [] untuk mengonversi ke karakter hex * @param tolowercase * <code> true </code> transfer ke format kecil, <code> false </code> transfer ke format huruf besar * @return hexString */public static encodeHex (byte [] data, boolean tolower) {public encodeHex (Data [] Data, boolean TOLOWERCASE) {public encodeHex? Data [] Data, boolean TOLOWERCASE) {public encodeHex (DATEOWER DATERAWER, DATOWER BOOLEAN TOOLEAN TOLOWER) {DATOWER PUBLIK: DATOOWER DATOWER? Digit_upper); } /*** Konversi array byte ke string hex. * * Karena dua karakter digunakan untuk mewakili byte, panjang string yang dikembalikan akan dua kali panjang byte parameter []. * * @param Data * byte [] untuk mengonversi ke karakter hex * @param Todigits * alfabet untuk mengendalikan output * @return hex string */ string statis yang dilindungi encodeHexStr (byte [] data, char [] todigits) {return new string (encodehex (data, todigits)); } /** * Convert hex characters array to byte array* * @param data * Hex char[] * @return byte[] * @throws RuntimeException * If the length of the source hex character array is an odd number, a runtime exception will be thrown*/ public static byte[] decodeHex(char[] data) { int len = data.length; if ((len & 0x01)! = 0) {lempar runtimeException baru ("jumlah karakter ganjil."); } // Byte sesuai dengan dua karakter hex, atur ukuran byte [] ke setengah dari ukuran char [] byte [] out = byte baru [len >> 1]; // Dua karakter membentuk nilai hex. untuk (int i = 0, j = 0; j <len; i ++) {int f = todigit (data [j], j) << 4; j ++; f = f | todigit (data [j], j); j ++; out [i] = (byte) (f & 0xff); } kembali; } /*** Konversi karakter heksadesimal menjadi bilangan bulat. * * @param ch * karakter yang akan dikonversi menjadi bilangan bulat * @param index * Posisi karakter dalam array karakter * @return An integer * @Throws runtimeException * Ketika ch bukan karakter hexadecimal legal, lempar pengecualian ini */ protected int todigit (final char ch, index final inter) {final intercimal) {final intig. if (digit == -1) {lempar runtimeException baru ("karakter heksadesimal ilegal" + ch + "pada indeks" + indeks); } return digit; } public static void main (string [] args) {string srcstr = "helloWorld!"; String encodeStr = encodeHexSTR (srcstr.getbytes (), false); String decodestr = string baru (decodehex (encodeStr.tochararray ())); System.out.println ("Sumber String:" + SRCSTR); System.out.println ("Standar dikodekan sebagai hex:" + encodestr); System.out.println ("Hexadecimal Decoded sebagai String:" + Decodestr); }}