十六进制工具类
十六进制工具类
一、十进制转十六进制
代码:
//将整数转换成十六进制的字符串
public static String decimalTohex(int decimal) {
String result = "";
int x = decimal;
while(x!=0) {
//余16
int mod = x%16;
if(mod>9) {
result = (char)('A' + (mod-10)) + result;
}else {
result = mod + result;
}
// 使其继续能够迭代下去
x = x/16;
}
// 除16取余 17=》11
// 17/16 得1余1
// 1/16 得0余1
return result;
}
或者直接用java的内部类Integer.toString(x,radix);
总结
- 十六进制转为十进制,需要余16得到这一位的进制,然后除16得到下一位上的数字。
x = x/16;
使其继续能够迭代下去。
//余16
int mod = x%16;
余十六的得到这一位置上的模
二、十进制转十六进制
代码:
//将十六进制数转成十进制数
public static int hexToDecimal(String hex) {
int res = 0;
for (int i = hex.length()-1; i >=0 ; i--) {
int x;
if((hex.charAt(i)>=65&&hex.charAt(i)<=90)) {
x = (int)(hex.charAt(i)-'A')+10;
res+= x*Math.pow(16, hex.length() -1-i);//hex.length() -i -1很好推,比如abc刚开始取第一个字符下标为0(i = 0),
// 但是它的权值是pow(3-1-0)
}else if((hex.charAt(i)>=97&&hex.charAt(i)<=122)) {
x = (int)(hex.charAt(i)-'a')+10;
res+= x*Math.pow(16, hex.length() -1-i);
}
else {
x = (int)(hex.charAt(i)-'0');
res+=x*Math.pow(16, hex.length() -1-i);;
}
}
return res;
}
总结:
String [] arr = hex.split("");
这条语句可以将字符串hex差分为一个个的字符,放到数组中。
或者
char [] ch = hex.toCharArray();
2.charAt的时候先取这个十六进制的第一位,所以特别注意hex.length() -i -1很好推,比如abc刚开始取第一个字符下标为0(i = 0),但是它的权值是pow(3-1-0)
res+= x*Math.pow(16, hex.length() -1-i);
3.另外区分一下大写和小写字母算出来的值不同,要分情况写
//大写字母
if((hex.charAt(i)>=65&&hex.charAt(i)<=90)) {
x = (int)(hex.charAt(i)-'A')+10;
res+= x*Math.pow(16, hex.length() -1-i);//hex.length() -i -1很好推,比如abc刚开始取第一个字符下标为0(i = 0),
// 但是它的权值是pow(3-1-0)
}
//小写字母
else if((hex.charAt(i)>=97&&hex.charAt(i)<=122)) {
x = (int)(hex.charAt(i)-'a')+10;
res+= x*Math.pow(16, hex.length() -1-i);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律