c# 字符串已0x开头的字母 16转为10进制 数字开头直接转10进制
时间: 2024-12-08 07:15:11 浏览: 28
在 C# 中,如果你有一个字符串以 `0x` 开头,通常表示这是一个十六进制数。你可以使用 `int.Parse` 或 `int.TryParse` 方法来将其转换为十进制整数,因为它们都支持十六进制格式。
下面是一个例子:
```csharp
string hexString = "0x1A"; // 假设这是你要转换的十六进制字符串
int decimalValue;
if (int.TryParse(hexString.Substring(2), System.Globalization.NumberStyles.HexNumber, null, out decimalValue)) // 截取从第二个字符开始的部分
{
Console.WriteLine($"十六进制 {hexString} 对应的十进制值是: {decimalValue}");
}
else
{
Console.WriteLine("无法转换为有效十六进制数值.");
}
```
如果你的字符串是以字母开头而不是数字,比如 `"0xFF"` 或 `"0xA5B"`,则需要先处理这个特殊情况,如检查首两个字符是否为 "0x"。如果直接 `TryParse` 可能会失败。
另外,对于 `0x` 后面直接跟的是数字的情况,如 `"123"`,不需要额外的操作,因为它本身就是十进制的。可以直接进行转换:
```csharp
int decimalValueDirect = int.Parse("123");
```
阅读全文