BitConverter.ToInt32 を使用して Byte 配列を int に変換しています。
[0][26] の 2 バイトしかありませんが、関数には 4 バイトが必要なので、既存のバイトの先頭に 0 バイトを 2 つ追加する必要があります。
最も速い方法は何ですか。
ありがとうございました。
おそらく(int)BitConverter.ToInt16(..)
代わりに行う必要があります。 ToInt16
に 2 バイトを読み込むように作成されますshort
。int
次に、それをキャストでに変換するだけです。
2 バイトのみを読み取る BitConverter.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(byte[]) への呼び出しはより良いアイデアのように思えます。それから int に保存してください:
int myInt = BitConverter.ToInt16(...);
ただし、エンディアンに注意してください。リトル エンディアン マシンで{ 0x00 0x02 }
は、実際には 2 ではなく 512 です (0x0002
エンディアンに関係なく 2 のままです)。