如何在41104中获取C#,A909中的吸管数据?
-
26-09-2019 - |
题
我正在尝试将INT值转换为16位未签名的炭类型(USHORT)。在一个示例中,41104在ushort中为A909,但是在C#中,我尝试了代码示例(在MSDN文章的帮助下 bitConverter.getBytesyöntem(uint16)):
byte[] bytes = BitConverter.GetBytes(41104);
string bytes = BitConverter.ToString(byteArray);
//It returns "90-A0"
如何获得41104的A909值?
解决方案
实际上,正确的(=十六进制)值为A090。我不管是否没有管教,您想要的是显示同等标准。
您提供的代码片段已经做到这一点。一个字节是“ A0”另一个“ 90”。您只需要正确地订单即可。
另一种方法是让.NET完成工作
String.Format("{0:X}", 41104);
如您所见,它不是真正的数据转换,而是一种不同的显示方式。
其他提示
您需要重新排序字节:
byte[] bytes = BitConverter.GetBytes(41104);
if (BitConverter.IsLittleEndian)
{ List<byte> tmp = new List<byte>();
tmp.AddRange(bytes);
tmp.Reverse();
bytes = tmp.ToArray();
}
不隶属于 StackOverflow