ulong 到十六进制转换说明

ulong to hex conversion clarification

我有一个在线参考程序。在该变量中 data64 被定义为 ulong 类型。他们正在将其转换为 unicode 并显示在这样的文本框中:

TextBox1.AppendText = Rxmsg.data64.ToString("X");

data64的实际值为“12288092688749907974”。 当它显示在文本框中时,值为 "AA88133200035006"。我认为这是一个简单的十进制到十六进制的转换。所以我将 data64 值转换为十六进制,但我错了。谁能告诉我上述转换是如何进行的?这与我的一个项目有关。这对我进一步进行非常有用。

原因是显示器的字节顺序

IsLittleEndian Yes: 06-50-03-00-32-13-88-AA

IsLittleEndian No: AA-88-13-32-00-03-50-06

fiddle demo and wikipedia link

using System;

namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var value = 12288092688749907974u;
            var bytes = BitConverter.GetBytes(value);

            Console.Write(BitConverter.IsLittleEndian ? "IsLittleEndian Yes" : "IsLittleEndian No");
            Console.WriteLine(" Value " + BitConverter.ToString(bytes));

            Array.Reverse(bytes);
            Console.Write(BitConverter.IsLittleEndian ? "IsLittleEndian No" : "IsLittleEndian Yes");
            Console.WriteLine(" Value " + BitConverter.ToString(bytes));

            Console.Read();
        }
    }
}