EncodeUtil Java 中常用的进制转化
package cn.shijinet.kunlun.packagecontrol.util;
/**
* @author: Eric
* @Date: 2018-12-14 15:00
**/
public class EncodeUtil {
public static String convertAsc2ToString(String asc2) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < asc2.length() - 1; i += 2) {
String output = asc2.substring(i, (i + 2));
int decimal = Integer.parseInt(output, 16);
sb.append((char) decimal);
}
return sb.toString();
}
public static String convertHexToString(String hex) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hex.length() - 1; i += 2) {
String output = hex.substring(i, (i + 2));
int decimal = Integer.parseInt(output, 16);
sb.append(decimal);
}
return sb.toString();
}
public static String convertDECToString(String dec) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < dec.length() - 1; i += 2) {
int output = Integer.parseInt(dec.substring(i, (i + 2)));
String s = Integer.toHexString(output);
sb.append(s);
}
return sb.toString();
}
public static int[] getPositions(String[] str) {
int[] positions = new int[str.length];
for (int i = 0; i < str.length; i++) {
positions[i] = Integer.parseInt(str[i]) * 2;
}
return positions;
}
private static String hexStr = \"0123456789ABCDEF\";
private static String[] binaryArray =
{\"0000\",\"0001\",\"0010\",\"0011\",
\"0100\",\"0101\",\"0110\",\"0111\",
\"1000\",\"1001\",\"1010\",\"1011\",
\"1100\",\"1101\",\"1110\",\"1111\"};
/**
* 转换为二进制字符串
*/
public static String bytes2BinaryStr(byte[] bArray){
StringBuilder outStr = new StringBuilder();
int pos = 0;
for(byte b:bArray){
//高四位
pos = (b&0xF0)>>4;
outStr.append(binaryArray[pos]);
//低四位
pos=b&0x0F;
outStr.append(binaryArray[pos]);
}
return outStr.toString();
}
/**
* 将二进制转换为十六进制字符输出
*/
public static String binary2HexString(byte[] bytes){
String result = \"\";
String hex = \"\";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));
result +=hex+\" \";
}
return result;
}
/**
* 将十六进制转换为字节数组
*/
public static byte[] hexString2Binary(String hexString){
//hexString的长度对2取整,作为bytes的长度
int len = hexString.length()/2;
byte[] bytes = new byte[len];
//字节高四位
byte high = 0;
//字节低四位
byte low = 0;
for(int i=0;i<len;i++){
//右移四位得到高位
high = (byte)((hexStr.indexOf(hexString.charAt(2*i)))<<4);
low = (byte)hexStr.indexOf(hexString.charAt(2*i+1));
//高地位做或运算
bytes[i] = (byte) (high|low);
}
return bytes;
}
}
继续阅读与本文标签相同的文章
-
阿里云服务器搭建一个网站网站建设的基本步骤——部署与发布新手入门
2026-05-18栏目: 教程
-
网络基础技术实践#网络安全基础技术实践课程
2026-05-18栏目: 教程
-
阿里云服务器计算网络增强型实例sn1ne 适合中大型网站及性能要求高的公司业务使用
2026-05-18栏目: 教程
-
前端进阶|第八天 京东笔试题,引用传参赋值无效?
2026-05-18栏目: 教程
-
阿里云弹性伸缩ESS必知必会
2026-05-18栏目: 教程
