欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > C# 十六进制字符串转换为十进制

C# 十六进制字符串转换为十进制

2025/2/22 5:56:53 来源:https://blog.csdn.net/qq_25066151/article/details/145756016  浏览:    关键词:C# 十六进制字符串转换为十进制

在 C# 中,将十六进制(Hexadecimal)字符串转换为十进制(Decimal)整数非常简单。以下是几种常见的方法:


方法 1: 使用 Convert.ToInt32

Convert.ToInt32 方法可以直接将十六进制字符串转换为十进制整数。

示例代码
using System;class Program
{static void Main(){string hexValue = "1A3"; // 十六进制字符串int decimalValue = Convert.ToInt32(hexValue, 16); // 转换为十进制Console.WriteLine($"十六进制 {hexValue} 转换为十进制是: {decimalValue}");}
}
输出
十六进制 1A3 转换为十进制是: 419

方法 2: 使用 int.Parseint.TryParse

int.Parseint.TryParse 也可以将十六进制字符串转换为十进制整数,需要指定 NumberStyles.HexNumber

示例代码
using System;
using System.Globalization;class Program
{static void Main(){string hexValue = "1A3"; // 十六进制字符串int decimalValue = int.Parse(hexValue, NumberStyles.HexNumber); // 转换为十进制Console.WriteLine($"十六进制 {hexValue} 转换为十进制是: {decimalValue}");}
}
输出
十六进制 1A3 转换为十进制是: 419
使用 int.TryParse 处理异常

如果十六进制字符串可能无效,可以使用 int.TryParse 来避免异常:

using System;
using System.Globalization;class Program
{static void Main(){string hexValue = "1A3"; // 十六进制字符串if (int.TryParse(hexValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out int decimalValue)){Console.WriteLine($"十六进制 {hexValue} 转换为十进制是: {decimalValue}");}else{Console.WriteLine("无效的十六进制字符串");}}
}

方法 3: 手动转换

如果你希望手动实现十六进制到十进制的转换,可以使用以下算法:

示例代码
using System;class Program
{static void Main(){string hexValue = "1A3"; // 十六进制字符串int decimalValue = HexToDecimal(hexValue);Console.WriteLine($"十六进制 {hexValue} 转换为十进制是: {decimalValue}");}static int HexToDecimal(string hex){int result = 0;for (int i = 0; i < hex.Length; i++){char c = hex[i];int digit = c >= '0' && c <= '9' ? c - '0' :c >= 'A' && c <= 'F' ? c - 'A' + 10 :c >= 'a' && c <= 'f' ? c - 'a' + 10 : 0;result = result * 16 + digit;}return result;}
}
输出
十六进制 1A3 转换为十进制是: 419

方法 4: 使用 BitConverter(适用于字节数组)

如果十六进制数据是以字节数组的形式存在,可以使用 BitConverter 将其转换为十进制。

示例代码
using System;class Program
{static void Main(){byte[] bytes = { 0x1A, 0x03 }; // 十六进制字节数组int decimalValue = BitConverter.ToInt16(bytes, 0); // 转换为十进制Console.WriteLine($"十六进制字节数组转换为十进制是: {decimalValue}");}
}
输出
十六进制字节数组转换为十进制是: 6667

总结

  • 推荐方法:使用 Convert.ToInt32int.Parse,简单且高效。
  • 手动转换:适用于学习或特殊需求。
  • 字节数组:如果数据是字节数组形式,可以使用 BitConverter

根据你的需求选择合适的方法即可!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词