c#16进制字符串转10进制
时间: 2023-09-30 19:05:55 浏览: 186
16进制转字符-字符转16进制-有调用方法-貌似支持中文-但绝对能转
要将C#中的16进制字符串转换为10进制,可以使用以下代码段:
```csharp
public long convertToint(string sum)
{
long vars = 0;
var c = sum.ToCharArray().Reverse().ToArray();
for (int i = 0; i < c.Length; i++)
{
if (isLetters(c[i]) == -1)
{
vars = -1;
break;
}
vars = (long)(isLetters(c[i]) * Math.Pow(16, i));
}
return vars;
}
public int isLetters(char c)
{
int i = 0;
switch (c=Char.ToLower(c))
{
case '0': i = 0; break;
case '1': i = 1; break;
case '2': i = 2; break;
case '3': i = 3; break;
case '4': i = 4; break;
case '5': i = 5; break;
case '6': i = 6; break;
case '7': i = 7; break;
case '8': i = 8; break;
case '9': i = 9; break;
case 'a': i = 10; break;
case 'b': i = 11; break;
case 'c': i = 12; break;
case 'd': i = 13; break;
case 'e': i = 14; break;
case 'f': i = 15; break;
default: i = -1; break;
}
return i;
}
```
该`convertToint`函数接受一个16进制字符串作为参数,并将其转换为对应的10进制值。如果字符串不是16进制形式,则返回-1。
用法示例:
```csharp
string hexString = "1A";
long decimalValue = convertToint(hexString);
Console.WriteLine(decimalValue); // 输出 "26"
```
请注意,这只是一个示例代码,你可以根据自己的需求进行修改和优化。
阅读全文