ulong到hex转换澄清

时间:2015-11-23 03:30:46

标签: c# unicode hex type-conversion ulong

我有一个参考程序,我上网了。在该变量data64中定义为ulong类型。他们正在转换为unicode并在文本框中显示如下:

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

data64的实际值是" 12288092688749907974"。 当它显示在文本框中时,值为" AA88133200035006"。我认为它是一个简单的十进制到十六进制转换。所以我将data64值转换为十六进制,但我错了。任何人都可以请您澄清上述转换是如何进行的?它与我的一个项目有关。对我来说非常有用。

1 个答案:

答案 0 :(得分:0)

原因是显示的字节顺序

  

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

     

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

fiddle demowikipedia 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();
        }
    }
}