0

我正在从内存中读取一个整数(i如下)。要将其转换为我在执行以下操作后的角色:

int i = 99;
string hex = 99.ToString("X"); //"63"
string readable = hex.FromHex(); //"c"

public static string FromHex(this string hex)
{
    hex = hex.Replace("-", "");
    byte[] raw = new byte[hex.Length / 2];
    for (int i = 0; i < raw.Length; i++)
    {
        raw[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
    }
    return Encoding.UTF8.GetString(raw);
}

但我想有一种更简单的方法可以做到这一点?

4

3 回答 3

2

您可以将其直接转换为char

char myChar = (char)99;

或使用:

char myChar = Convert.ToChar(99);
于 2013-08-14T16:26:26.060 回答
1

尝试

int i = 99;
var bits = BitConverter.GetBytes(i);
Console.Write("Char: {0}", Encoding.UTF8.GetString(bits));
于 2013-08-14T16:30:53.997 回答
1

这应该工作,假设 UTF8 编码:

byte[] bytes = BitConverter.GetBytes(i).Where(x => x != 0).ToArray();
string result = Encoding.UTF8.GetString(bytes);

但请注意,您运行它的机器的字节顺序很重要。

于 2013-08-14T16:31:02.313 回答