/** * 二进制转十进制 */ public static String binaryToDecimal(String num) { String binary = String.valueOf(Integer.parseInt(num, 2)); return binary; } /** * 十进制转二进制 */ public static String decimalToBinary(String num) { String decimal = String.valueOf(Integer.toBinaryString(Integer.parseInt(num))); return decimal; } /** * 十进制转十六进制 */ public static String decimalToHexadecimal(int num) { StringBuilder sb = new StringBuilder(8); String decimal; char[] b = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; while (num != 0) { sb = sb.append(b[num % 16]); num = num / 16; } decimal = sb.reverse().toString(); return decimal; } /** * 十六进制转十进制 */ public static int hexadecimalToDecimal(String num) { int number = 0; num = num.toUpperCase(); String[] HighLetter = {"A", "B", "C", "D", "E", "F"}; Map<String, Integer> map = new HashMap<>(); for (int i = 0; i <= 9; i++) { map.put(i + "", i); } for (int j = 10; j < HighLetter.length + 10; j++) { map.put(HighLetter[j - 10], j); } String[] str = new String[num.length()]; for (int i = 0; i < str.length; i++) { str[i] = num.substring(i, i + 1); } for (int i = 0; i < str.length; i++) { number += map.get(str[i]) * Math.pow(16, str.length - 1 - i); } return number; } /** * 十六进制转ASCII码 */ public static String hexToAscii(String hexStr) { StringBuilder output = new StringBuilder(""); for (int i = 0; i < hexStr.length(); i += 2) { String str = hexStr.substring(i, i + 2); output.append((char) Integer.parseInt(str, 16)); } return output.toString(); } /** * ASCII码转十六进制 */ public static String convertStringToHex(String str) { char[] chars = str.toCharArray(); StringBuffer hex = new StringBuffer(); for (int i = 0; i < chars.length; i++) { hex.append(Integer.toHexString((int) chars[i])); } return hex.toString(); } /** * ASCII码转十进制 拼接 */ public static String asciiToDecimal(String str){ byte[] bytes = str.getBytes(); String result = ""; for(int i=0;i<bytes.length;i++){ result += bytes[i]; } return result; } /** * ASCII码转十进制 累加 */ public static int asciiToDecimal2(String str){ byte[] bytes = str.getBytes(); int sum = 0; for(int i=0;i<bytes.length;i++){ sum += bytes[i]; } return sum; } public static void main(String[] args) { System.out.println("二进制转十进制:1110->"+binaryToDecimal("1110")); System.out.println("十进制转二进制:10->"+decimalToBinary("10")); System.out.println("十进制转十六进制:15->"+decimalToHexadecimal(15)); System.out.println("十六进制转十进制:F->"+hexadecimalToDecimal("F")); System.out.println("十六进制转ASCII码:5F->"+hexToAscii("5F")); System.out.println("ASCII码转十六进制:ac->"+convertStringToHex("ac")); System.out.println("ASCII码转十进制-拼接:ac->"+asciiToDecimal("ac")); System.out.println("ASCII码转十进制-累加:ac->"+asciiToDecimal2("ac")); }