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();
}
}
}
我有一个在线参考程序。在该变量中 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();
}
}
}