[英]Converting int32 -> hex -> string
我正在从内存中读取一个整数(下面的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);
}
但是我想有一种更简单的方法可以做到这一点?
您可以将其直接转换为char
:
char myChar = (char)99;
或使用:
char myChar = Convert.ToChar(99);
尝试
int i = 99;
var bits = BitConverter.GetBytes(i);
Console.Write("Char: {0}", Encoding.UTF8.GetString(bits));
假设使用UTF8编码,这应该可以工作:
byte[] bytes = BitConverter.GetBytes(i).Where(x => x != 0).ToArray();
string result = Encoding.UTF8.GetString(bytes);
但是请注意,运行此机器的机器的字节顺序很重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.