在c#中将十六进制字符串转换为小端字符串

tal*_*tal 1 c# hex endianness

我有一个十六进制数字的字符串表示,我想得到一个小端的字符串表示.

例如输入为:"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);
Run Code Online (Sandbox Code Playgroud)

输出是"1c223a"

因为我真的不知道第三行是做什么的,所以我不确定它是否会一直有效,因为我希望它可以工作.我也不知道为什么我要修剪额外的零?

Den*_*nis 8

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;
}
Run Code Online (Sandbox Code Playgroud)