В этой статье описывается реализация Java класса инструмента бинарного преобразования. Поделитесь этим для вашей ссылки, следующим образом:
Импорт java.nio.charset.charset;/*** Hexadecimal (сокращенно как шестигранник или подписание 16) - это система переноса в математике, которая переходит от 16 до 1. Обычно это представлено числами от 0 до 9 и буквами A до F (где: A ~ F - 10 ~ 15). <br> * Например, десятичное число 57 написано в бинарном 111001, а шестнадцатеричный 39 написан в шестнадцатеричной. <br> * Чтобы различать шестнадцатеричные и десятичные значения, такие языки, как Java и C, будут префиксом 0x перед шестигранным номером, например, 0x20 - 32 в десятичном, вместо 20 в десятичном */public class HexKit { /** * Lowercase character array used to create the output of hexadecimal characters*/ private static final char[] DIGITS_LOWER = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / *** Капитальный массив символов, используемый для создания вывода шестнадцатеричных символов*/ private static final char [] digits_upper = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', 'B', 'C', ',' e ',' f '' a 'at' // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. * @return hex char [] */ public static char [] encodeHex (byte [] data) {return encodeHex (data, true); } / *** Преобразовать массив байтов в шестнадцатеричный массив символов** @param str String* @param charset Кодирование* @return hex char []* / public static char [] encodehex (string str, charset charset) {return encodeHex (strkit.getbytes (strse), true); }/** * Преобразовать байтовые массивы в шестнадцатеричный массив символов * * @param Data Byte [] * @param tolowercase <code> true </code> Передача в нижний формат, <code> false </code> Передача в формат верхней части * @return hex char [] */public char [] encodehex (byte [] data, boolean in encodehose ecodehex wabeex, ecodehex, encodehex, ecodehex, ecodehex, ecodehex, ecodehex, encodehex, ecodehex, ecodehex, encodehex? Digits_lower: digits_upper); } / ** * Преобразовать байтовые массивы в шестнадцатеричную строку * * @param data byte [] * @return hexstring * / public static String encodeHexstr (byte [] data) {return encodeHexstr (data, true); }/** * Преобразовать байтовые массивы в шестнадцатеричную строку * * @param Data Byte [] * @param tolowercase <code> true </code> передача в формат нижнего регистра, <code> false </code> передача в формат верхнего регистра * @return hexstring */public Static String Encodehexstr (byte [] data, boolean -tolowercase) {return encodehexstraste? Digits_upper); } // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- decodeHexstr (hexstr.tochararray (), charset); } / *** Преобразовать массив символов HEX в String** @param hexdata hex char []* @param charset necoding* @return String* / public Static String DecodeHexstr (char [] hexdata, charset charset) {return strkit.str (decodeHex (hexdata), charset); } / ** * Преобразование шестнадцатеричного массива символов в массив Byte * * @param hexdata hex char [] * @return byte [] * @throhs runtimeexception Если массив символов шестнадцатеричного шестнадцатилетия является странной длиной, исключение времени выполнения будет выброшено * / public static byte [] decodeHex (char [] hexdata) {int len = hexdata; if ((len & 0x01)! = 0) {бросить новое runtimeexception («нечетное количество символов»); } byte [] out = new Byte [len >> 1]; // Два символа формируют гекс. Значение. for (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); } вернуться; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- todigits) {вернуть новую строку (encodehex (data, todigits)); } / ** * Конвертировать байтовые массивы в шестнадцатеричный массив символов * * @param Data Byte [] * @param todigits char [] для контроля вывода * @return hex char [] * / private static char [] encodehex (byte [] data, char [] todigits) {int l = data.length; char [] out = new char [l << 1]; // Два символа формируют гекс. Значение. for (int i = 0, j = 0; i <l; i ++) {out [j ++] = todigits [(0xf0 & data [i]) >>> 4]; out [j ++] = todigits [0x0f & data [i]]; } вернуться; } / *** преобразовать шестнадцатеричные символы в целое число** @param ch hexadecimal char* @param index позиция шестнадцатеричных символов в массиве персонажей* @return integer* @throhs runtimeexexcept Персонаж.digit (ch, 16); if (digit == -1) {бросить новое runtimeexception («незаконное шестигранное символ» + ch + »в индексе» + index); } return Digit; } //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bstring.length () % 8! = 0) return null; StringBuffer tmp = new StringBuffer (); int itmp = 0; for (int i = 0; i <bstring.length (); i += 4) {itmp = 0; for (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; for (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; } / ** * преобразовать двоичный в шестнадцатеричный * @param buf * @return * / public Static String Binary2Hex (byte buf []) {stringbuffer sb = new StringBuffer (); for (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 ()); } вернуть sb.toString (); } / ** * преобразовать hexstr в двоичный * @param hexstr * @return * / public static byte [] hex2byte (string hexstr) {if (hexstr.length () <1) return null; byte [] result = new Byte [hexstr.length () / 2]; for (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); результат [i] = (byte) (высокий * 16 + низкий); } return Result; }}PS: Вот несколько инструментов онлайн -конверсии и расчета для этого веб -сайта. Я считаю, что это будет полезно для вас:
Онлайн -инструмент преобразования в Интернете:
http://tools.vevb.com/transcoding/hexconvert
Стандартный онлайн -калькулятор:
http://tools.vevb.com/jisuanqi/jsq
Онлайн научный калькулятор:
http://tools.vevb.com/jisuanqi/jsqkeexue
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.