我有一个十六进制数字的字符串表示,我想得到一个小端的字符串表示。
例如输入为:“112C4F”
输出应为:“4F2C11”
我正在使用c#。
最终我想出了这个:
string text = "3A221C";
int tmp = int.Parse(text, NumberStyles.HexNumber);
var reversedBytes = System.Net.IPAddress.NetworkToHostOrder(tmp);
var hex = reversedBytes.ToString("x");
var trimmed = hex.Substring(0, text.Length);
Console.WriteLine(trimmed);
输出为“1c223a”
因为我真的不知道第三行是做什么的,所以我不确定它是否会一直有效,因为我希望它可以工作。我也不知道为什么我有额外的零,我必须修剪?
答案 0 :(得分:7)
static string LittleEndian(string num)
{
int number = Convert.ToInt32(num, 16);
byte[] bytes = BitConverter.GetBytes(number);
string retval = "";
foreach (byte b in bytes)
retval += b.ToString("X2");
return retval;
}