【发布时间】:2020-03-11 09:00:18
【问题描述】:
我有一个代码可以返回一个字节或更多或更少的字节数组。问题在于,有时在转换字节时会出现错误,因为我无法确定何时需要使用 toInt32、toInt64 或 toInt16。另一个问题是,有时当我得到一个字节时,我无法使用上述方法转换这个字节,因为我不断收到错误。那么如何根据字节的长度或大小来确定我应该使用哪种方法。
//as in array of bytes byte[]
var response = this.cc.Sendcc("SERIAL_NUMBER", 0x05, 0x80, 0x64, 0x04, 0x01, 0x21, (byte)1, (byte)1);
if (response .Length == 1)
{
toInt32SerialNumber = BitConverter.ToInt16(response , 0);
}
else
{
toInt32SerialNumber = BitConverter.ToInt32(response , 1);
}
【问题讨论】:
-
可能是一个没有实际意义的问题,但为什么不简单地选择尽可能大的 int,即 int64 呢?
-
“我不断收到错误” - 什么错误?
-
目标数组的长度不足以复制集合中的所有项目。检查一个
-
为什么将
BitConverter.ToInt32(response , 1);的起始索引指定为1?不应该是0吗? -
如果您向我们展示各种长度的
response内容以及转换这些字节时所期望的结果,将会很有帮助。
标签: c# bitconverter