我有一个参考程序,我上网了。在该变量data64
中定义为ulong
类型。他们正在转换为unicode并在文本框中显示如下:
TextBox1.AppendText = Rxmsg.data64.ToString("X");
data64
的实际值是" 12288092688749907974"。
当它显示在文本框中时,值为" AA88133200035006"。我认为它是一个简单的十进制到十六进制转换。所以我将data64
值转换为十六进制,但我错了。任何人都可以请您澄清上述转换是如何进行的?它与我的一个项目有关。对我来说非常有用。
答案 0 :(得分:0)
原因是显示的字节顺序
IsLittleEndian是:06-50-03-00-32-13-88-AA
IsLittleEndian No: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();
}
}
}