gpt4 book ai didi

c# - 如何在 C# 中将 Int64 转换为十六进制以及从十六进制转换为字节

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:01 26 4
gpt4 key购买 nike

我正在尝试通过串行端口向微 Controller 发送一个字节数组。这是一个可以与微 Controller 成功通信的示例数组:

byte[] getCommandArray = new byte[7] { 0x02, 0x0D, 0x01, 0x03, 0x30, 0x44, 0x03 };

我需要做的是从数据库中读取不同的值,将它们存储在一个字节数组中,将这个数组发送到串口。我从数据库中读取值作为 Int64。此外,为了成功沟通,我需要将这些值转换为十六进制。例如,如果我从数据库中读取 13,我需要将其作为 0x0D 写入我的数组。我可以将 13 转换为 0x0D 作为十六进制字符串,但我无法将其转换为 byte。如果您有除此逻辑之外的任何其他建议,我将不胜感激。

最佳答案

如果您只是想从您的 Int64 值中获取所有字节,您可以这样做:

Int64 myValueFromDB = 13;
var asBytes = BitConverter.GetBytes(myValueFromDB);

要检查这是否产生了您期望的结果,您可以像这样打印这个结果:

Console.WriteLine("{{{0}}}", string.Join(",", asBytes.Select(x => "0x" + x.ToString("X2"))));    

对于您的示例,对 myValueFromDB 使用值 13,输出为:

{0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00}

可以看到,asBytes[0]的值为0x0D,其他7个字节为0。

您可以在这个 Fiddle 中自行查看;

关于c# - 如何在 C# 中将 Int64 转换为十六进制以及从十六进制转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30006009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com