【发布时间】:2019-05-13 07:41:07
【问题描述】:
我一直试图从另一个字节数组中减去一个字节数组的值,这些值是我从文件中读取的。 我试图将数组转换为整数,然后减去最终恢复为字节数组的值。
问题是我需要从另一个字节数组中获取值并使用它从另一个字节数组中减去。
我有以下代码,
byte[] arr_i = {0x01,0x02,0x03};
byte[] arr_j = {0x04,0x05,0x06};
int i = BitConverter.ToInt32(arr_i, 0);
int j = BitConverter.ToInt32(arr_j, 0);
int sub = j - i;
byte[] sum = BitConverter.GetBytes(sub);
一旦我得到 i 变量,我就会得到错误
{"Destination array is not long enough to copy all the items in the collection. Check array index and length."}
在我看来,类型之间存在某种不匹配,但我没有找到任何没有它的例子。
谢谢
【问题讨论】:
-
欢迎来到 Stack Overflow。如果您可以将其减少到 minimal reproducible example,这将很有帮助 - 目前涉及 很多 变量,我怀疑其中许多变量可以删除但仍会重现问题。此外,请发布准确的错误,并指出它发生的位置。
-
BitConverter.ToInt32不会从byte转换为int- 它从您传递的byte[]中读取四个字节并将它们解释为整数。由于您的数组只有三个字节,这将导致异常。但是为了帮助您解决问题,我们需要看到一个很好的例子来说明您正在尝试做的事情。 -
@Luaan Ops,这似乎是我的失误,我没有注意到它需要 4 个字节。我添加了另一个字节,它似乎工作。所以现在我得看看我如何改变我的原始代码来处理这个问题。谢谢!