You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中如何将char数组中的十六进制字符转换为int类型

解决十六进制字符转十进制的问题

首先得先提一下你代码里的一个小问题:你声明的hexText数组长度是9,那它的索引范围是0到8,所以hexText[9]会抛出数组越界异常哦!根据你注释里的5A3F0000A(共9个字符),最后一个字符'A'应该是hexText[8]。

接下来,把十六进制字符(比如'A')转换成对应的十进制数值(10),有两种常用且可靠的方法:

方法1:使用Character.digit()方法(推荐)

这个方法专门用来将指定基数的字符转换为对应的整数,完美适配十六进制的场景,还自动支持大小写的十六进制字符(比如'a'和'A'都能转成10):

char[] hexText = new char[9]; 
// 假设这里已经给hexText赋值为{'5','A','3','F','0','0','0','0','A'}
char c = hexText[8]; // 取最后一个字符'A'
int lastD = Character.digit(c, 16); // 结果就是10

方法2:手动判断转换

如果你想自己实现逻辑,也可以通过字符的ASCII值来计算:

char[] hexText = new char[9];
char c = hexText[8];
int lastD;
if (c >= '0' && c <= '9') {
    lastD = c - '0'; // 数字字符转十进制
} else if (c >= 'A' && c <= 'F') {
    lastD = c - 'A' + 10; // 大写字母转十进制
} else if (c >= 'a' && c <= 'f') {
    lastD = c - 'a' + 10; // 小写字母转十进制
} else {
    // 处理无效的十六进制字符
    throw new IllegalArgumentException("Invalid hex character: " + c);
}
// 此时lastD对于'A'来说就是10

两种方法里,Character.digit()更简洁也更不容易出错,建议优先使用。

内容的提问来源于stack exchange,提问作者Kate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:49:56