C#将十六进制字符串转十进制
时间: 2023-09-06 12:09:45 浏览: 181
可以使用Convert类的静态方法ToInt32来将十六进制字符串转换为十进制整数。
具体实现代码如下:
```
string hexString = "1A"; // 十六进制字符串表示的十进制整数26
int result = Convert.ToInt32(hexString, 16);
```
解释一下代码:
首先定义一个十六进制字符串表示的十进制整数,例如26的十六进制表示为1A。
然后使用Convert.ToInt32方法将十六进制字符串转换为十进制整数。第一个参数是要转换的字符串,第二个参数指定字符串的进制,这里为16表示十六进制。
执行完上述代码,result变量的值应该为26。
相关问题
如何在 C# 中将十六进制字符串 'B5010008100400010000' 转换为十进制并求和?
在C#中,你可以通过以下步骤将十六进制字符串转换为十进制整数数组,然后求和:
1. 首先,需要将十六进制字符串解析为字节数组,因为每个十六进制数字对应一个字节:
```csharp
string hexString = "B5010008100400010000";
byte[] bytes = Array.ConvertAll(hexString.ToCharArray(), c => Convert.ToByte(c, 16));
```
`ToCharArray()`将字符串转换为字符数组,`Convert.ToByte(c, 16)`将每个字符转成对应的十六进制数值。
2. 然后,可以遍历字节数组,将每个字节转换为十进制整数并累加到总和:
```csharp
int sum = 0;
foreach (byte b in bytes)
{
sum += b;
}
```
`b`是一个字节,将其转换为十进制就是它的数值。
3. 打印出结果:
```csharp
Console.WriteLine($"The sum of the hexadecimal string is: {sum}");
```
完整的代码示例:
```csharp
string hexString = "B5010008100400010000";
byte[] bytes = Array.ConvertAll(hexString.ToCharArray(), c => Convert.ToByte(c, 16));
int sum = 0;
foreach (byte b in bytes)
{
sum += b;
}
Console.WriteLine($"The sum of the hexadecimal string '{hexString}' is: {sum}");
```
C# 十六进制字符串转字节
在C#中,将十六进制字符串转换为字节数组,你可以使用`System.Text.Encoding`类的`GetBytes`方法,配合`Convert.ToInt32`函数将每两个字符解析为一个十进制数,再将其转换为字节。这里是一个示例:
```csharp
public static byte[] HexStringToByteArray(string hexString)
{
// 确保输入的是有效的十六进制字符串
if (!hexString.All(char.IsHexDigit))
throw new ArgumentException("Invalid hexadecimal string");
int len = hexString.Length;
byte[] bytes = new byte[len / 2];
for (int i = 0; i < len; i += 2)
{
// 取出两个字符并转换成十进制
int value = Convert.ToInt32(hexString.Substring(i, 2), 16);
// 将十进制值存入字节数组
bytes[i / 2] = (byte)value;
}
return bytes;
}
```
阅读全文
相关推荐













