0

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

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

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

4

1 回答 1

0

原因是显示的字节顺序

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

IsLittleEndian 编号:AA-88-13-32-00-03-50-06

小提琴演示维基百科链接

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();
        }
    }
}
于 2015-11-23T03:51:47.533 回答