C#怎么把"AA"转换为0xaa的16进制数?
时间: 2024-09-21 10:03:37 浏览: 60
在C#中,你可以通过字符串操作和内置的转换函数来将字符序列如"AA"转换成对应的16进制数值。一种常见的做法是先将每个字符转换为其ASCII码,然后组合两个ASCII码形成16进制数。例如:
```csharp
string input = "AA";
byte[] bytes = Encoding.ASCII.GetBytes(input);
StringBuilder hexBuilder = new StringBuilder();
foreach (byte b in bytes)
{
hexBuilder.Append(b.ToString("x2")); // x2 表示两位十六进制数
}
int hexNumber = int.Parse(hexBuilder.ToString(), System.Globalization.NumberStyles.HexNumber);
Console.WriteLine($"16进制数: {hexNumber}");
```
这段代码首先将字符转换为字节,然后对每个字节应用`ToString("x2")`将其转换为两位的16进制字符。最后,将所有16进制部分连接起来并转换为整数。
如果你想得到一个整数形式的结果,比如0xaa而不是字符串"0xaa",你可以直接调用`int.Parse()`或者`Convert.ToInt32()`,但是注意需要传递正确的基数(这里是16):
```csharp
int hexNumber = Int32.Parse(hexBuilder.ToString(), 16);
```
阅读全文