Artikel ini menjelaskan implementasi Java dari kelas alat konversi biner. Bagikan untuk referensi Anda, sebagai berikut:
impor java.nio.charset.charset;/*** hexadecimal (disingkat hex atau subscript 16) adalah sistem carry dalam matematika yang berjalan dari 16 menjadi 1. Ini umumnya diwakili oleh angka 0 hingga 9 dan huruf A ke F (di mana: A ~ f adalah 10 ~ 15). <br> * Misalnya, nomor desimal 57 ditulis dalam biner 111001 dan hexadecimal 39 ditulis dalam heksadesimal. <br> * Untuk membedakan antara nilai -nilai heksadesimal dan desimal, bahasa seperti Java dan C akan awalan 0x di depan bilangan heksadesimal, misalnya, 0x20 adalah 32 dalam desimal, bukan 20 di liprege/referensi: https://my.oschina.net /xinging /xinging: https://my.oschina.net /xinginge /xinging: https://my.oschina.net /xinginge /xinging: https://my.oschina.net /xinginge /xinging: https:/my.oschina.net/xining/xining/xining: https:/my.oschina.net/xining/xining/xini. * */kelas publik hexkit {/** * Array karakter kecil yang digunakan untuk membuat output dari karakter heksadesimal */private static final char [] digit_lower = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '' '', '', ',', ',', ',', ',' ',', '', '', '', '', '', '', '', '', '6', ',', ', / *** Array karakter modal yang digunakan untuk membuat output karakter heksadesimal*/ private static final char [] digits_upper = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'B', 'C', '7', '8', '9', ',', ',', ',', ',', ',', ',', ',', // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- * @return hex char [] */ public static char [] encodehex (byte [] data) {return encodehex (data, true); } / *** Konversi array byte ke array karakter hexadecimal** @param str string* @param charset encoding* @return hex char []* / public static char [] encodehex (string str, charset charset) {return encodehex (strkit.getbytes (str, strk, string), charset); }/** * Konversi array byte menjadi hexadecimal character array * * @param byte data [] * @param tolowercase <code> true </code> Transfer ke format kecil, <code> false </code> transfer ke format boxox (boolex hex) {{@return hex {public {@return charcase) public {@return hex) ? } / ** * Konversi array byte ke string hexadecimal * * @param byte [] * @return hexString * / public static string encodeHexStr (byte [] data) {return encodeHexstr (data, true); } /** * Convert byte array to hex string* * @param data byte[] * @param toLowerCase <code>true</code> Transfer to lowercase format, <code>false</code> Transfer to uppercase format* @return HexString */ public static String encodeHexStr(byte[] data, boolean toLowerCase) { return encodeHexStr(data, toLowerCase ? DIGITS_LOWER : Digit_upper); } // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- decodehexstr (hexstr.tochararray (), charset); } / *** Konversi array karakter hex menjadi string** @param hexdata hex char []* @param charset encoding* @return string* / public static string decodehexstr (char [] hexdata, charset charset) {return strkit.str (decodeHex (hexdata), charset); } /** * Convert hex character array to byte array* * @param hexData Hex char[] * @return byte[] * @throws RuntimeException If the source hex character array is a strange length, a runtime exception will be thrown*/ public static byte[] decodeHex(char[] hexData) { int len = hexData.length; if ((len & 0x01)! = 0) {lempar runtimeException baru ("jumlah karakter ganjil."); } byte [] out = byte baru [len >> 1]; // Dua karakter membentuk nilai hex. untuk (int i = 0, j = 0; j <len; i ++) {int f = todigit (hexdata [j], j) << 4; j ++; f = f | todigit (hexdata [j], j); j ++; out [i] = (byte) (f & 0xff); } kembali; } // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Todigits) {return string baru (encodehex (data, todigits)); } / ** * Konversi array byte ke array karakter hex * * @param byte data [] * @param Todigits char [] Untuk mengendalikan output * @return hex char [] * / private static char [] encodeHex (byte [] data, char [] TODIGITS) {int l = data.lengthex; 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 karakter hexadecimal menjadi bilangan bulat** @param ch hexadecimal char* @param indeks posisi karakter hexadecimal dalam array karakter* @return a integer* @throws runtimeException ketika chapan cetak pnexadecimal {throws runtime {lempar {chapan {lempar {chapan {chapan {chrome {lempar {chrome {chrome {lempar {charan Karakter.digit (ch, 16); if (digit == -1) {lempar runtimeException baru ("karakter heksadesimal ilegal" + ch + "pada indeks" + indeks); } return digit; } // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bstring.length () % 8! = 0) return null; StringBuffer tmp = new StringBuffer (); int itmp = 0; untuk (int i = 0; i <bstring.length (); i += 4) {itmp = 0; untuk (int j = 0; j <4; j ++) {itmp + = integer.parseint (bstring.substring (i + j, i + j + 1)) << (4 - j - 1); } tmp.append (integer.tohexstring (ITMP)); } return tmp.toString (); } / ** * hexString * @param hexString * @return * / public static string hex2binary (string hexString) {if (hexString == null || hexstring.length () % 2! = 0) return null; String bstring = "", tmp; untuk (int i = 0; i <hexString.length (); i ++) {tmp = "0000" + integer.tobinaryString (integer.parseint (hexstring.substring (i, i + 1), 16)); bstring += tmp.substring (tmp.length () - 4); } return bString; } / ** * Konversi biner menjadi hex * @param buf * @return * / public string biner2Hex (byte buf []) {stringBuffer sb = stringBuffer baru (); untuk (int i = 0; i <buf.length; i ++) {string hex = integer.toHexString (buf [i] & 0xff); if (hex.length () == 1) {hex = '0' + hex; } SB.Append (hex.touppercase ()); } return sb.toString (); } / ** * Konversi hexstr ke biner * @param hexstr * @return * / public static byte [] hex2byte (string hexstr) {if (hexstr.length () <1) return null; byte [] hasil = byte baru [hexstr.length () / 2]; untuk (int i = 0; i <hexstr.length () / 2; i ++) {int high = integer.parseint (hexstr.substring (i * 2, i * 2+1), 16); int low = integer.parseint (hexstr.substring (i * 2 + 1, i * 2 + 2), 16); Hasil [i] = (byte) (tinggi * 16 + rendah); } hasil pengembalian; }}PS: Berikut adalah beberapa alat konversi dan perhitungan online untuk situs web ini. Saya percaya itu akan membantu Anda:
Alat konversi sewenang -wenang online:
http://tools.vevb.com/transcoding/HexConvert
Kalkulator Standar Online:
http://tools.vevb.com/jisuanqi/jsq
Kalkulator ilmiah online:
http://tools.vevb.com/jisuanqi/jsqkeexue
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.