我分配了一個故意大於BitConverter.GetBytes結果的數組。我的目標是保留最後一個字節爲空,這樣我就可以防止這個數字被視爲兩個人的恭維並且有tempPosBytes2當我運行BitConverter.GetBytes時,我的數組tempPosBytes2
似乎縮小了。爲什麼BitConverter縮小我已經分配的數組? (我試圖防止補碼問題)
uint positiveNumber = 4293967296;
byte[] tempPosBytes2 = new byte[tempPosBytes.Length + 1]; // four bytes plus one
tempPosBytes2 = BitConverter.GetBytes(positiveNumber); // tempPositiveBytes2 is now 4 bytes!!
問題
什麼在幕後事情,我怎麼能離開尾隨字節而不復制的陣列?
我需要這與BigInteger的(字節[]),如以下工作:
BigInteger positiveBigIntBAD2 = new BigInteger(tempPosBytes2); // Invalid
我想到了一個調整大小的,但是這是一個O(n)操作,其中n是數組的大小 – LamonteCristo
@ makerofthings7:那麼你在這個數組上做的所有其他操作都是如此。 * n *很小。 –
是的,它是O(n),但'n'是四。我們知道它是四個,因爲你正在處理32位整數。 –