我正在使用BitConverter.ToInt32將一個Byte數組轉換爲int。BitConverter.ToInt32轉換2個字節
我只有兩個字節[0] [26],但該函數需要4個字節,所以我必須將兩個0字節添加到現有字節的前面。
什麼是最快的方法。
謝謝。
我正在使用BitConverter.ToInt32將一個Byte數組轉換爲int。BitConverter.ToInt32轉換2個字節
我只有兩個字節[0] [26],但該函數需要4個字節,所以我必須將兩個0字節添加到現有字節的前面。
什麼是最快的方法。
謝謝。
您應該改爲使用(int)BitConverter.ToInt16(..)
。 ToInt16
被設置爲將兩個字節讀入short
。然後,您只需將其轉換爲帶有演員表的int
即可。
Array.Copy
。下面是一些代碼:
byte[] arr = new byte[] { 0x12, 0x34 };
byte[] done = new byte[4];
Array.Copy(arr, 0, done, 2, 2); // http://msdn.microsoft.com/en-us/library/z50k9bft.aspx
int myInt = BitConverter.ToInt32(done); // 0x00000026
然而,`BitConverter.ToInt16通話(字節[])似乎是一個更好的主意,那麼就保存到一個int:
int myInt = BitConverter.ToInt16(...);
記住儘管如此。在小端機上,{ 0x00 0x02 }
實際上是512,而不是2(0x0002
仍然是2,而不管字節順序)。
您應該調用`BitConverter.ToInt16,它只讀取兩個字節。
short
可以隱式轉換爲int
。
但是可能想要記錄關於endianess。 – 2012-07-20 02:47:49