16进制字符串和byte数组进行相互转换\将10进制转换为任意进制
16进制字符串和byte数组进行相互转换
简介
1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位。
JAVA代码
复制private static final char HexCharArr[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
private static final String HexStr = "0123456789abcdef";
//字节数组转成16进制字符串
public static String byteArrToHex(byte[] btArr) {
char strArr[] = new char[btArr.length * 2];
int i = 0;
for (byte bt : btArr) {
strArr[i++] = HexCharArr[bt>>>4 & 0xf];
strArr[i++] = HexCharArr[bt & 0xf];
}
return new String(strArr);
}
//16进制字符串转成字节数组
public static byte[] hexToByteArr(String hexStr) {
char[] charArr = hexStr.toCharArray();
byte btArr[] = new byte[charArr.length / 2];
int index = 0;
for (int i = 0; i < charArr.length; i++) {
int highBit = HexStr.indexOf(charArr[i]);
int lowBit = HexStr.indexOf(charArr[++i]);
btArr[index] = (byte) (highBit << 4 | lowBit);
index++;
}
return btArr;
}
Gitee地址
参考
https://www.cnblogs.com/zhaoyue1215/p/10449530.html
将10进制转换为任意进制
简介
此针对的是int类型或Long类型
- 思路
1、十进制数 num 转换为 n进制
num%n结果肯定为n进制数的最后一位
结果存入一个数组中
2、进入一个循环num!=0时候
num=num/n
重复1的操作
将倒数第二位、倒数第三位。。。到最终结果存入数组
3、遍历数组从 count到0
JAVA代码
复制 public char[] transform(int num, int n) {
int[] c=new int[100];
int b=-1;
while (num!=0) {
b++;
int a=num%n;
num=num/n;
c[b]=a;
}
char[] d=new char[1024];
int e=-1;
//注意 int转成char char获取的是int的ASCII码值
for (int f=0;f<=b;f++) {
e++;
if (c[f]>9){
//A对应2进制为65 ,对应10进制为10 ,故10进制的10转为16进制 在10进制上加上65-10=55
char c1 = (char) (c[f] + 55);
d[e]=c1;
}else {
//10进制转为2进制,10进制的0对应2进制为48
char c1 = (char) (c[f]+48);
d[e]=c1;
}
}
return d;
}
@Test
public void Test() {
// 测试用例
Transformation t = new Transformation();
char[] transform = t.transform(314154363, 16);
System.out.println(transform);
}
Gitee代码地址
XFS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~