我正在分配一个故意大于 BitConverter.GetBytes 结果的数组。我的目标是将最后一个字节留空,这样我就可以防止这个数字被视为两者的恭维并拥有 tempPosBytes2[
当我运行 BitConverter.GetBytes 时,我的数组tempPosBytes2
似乎缩小了。
uint positiveNumber = 4293967296;
byte[] tempPosBytes2 = new byte[tempPosBytes.Length + 1]; // four bytes plus one
tempPosBytes2 = BitConverter.GetBytes(positiveNumber); // tempPositiveBytes2 is now 4 bytes!!
问题
幕后发生了什么,如何在不复制数组的情况下留下尾随字节?
我需要它与 BigInteger(byte[]) 一起使用,如下所示:
BigInteger positiveBigIntBAD2 = new BigInteger(tempPosBytes2); // Invalid