2

BitConverter.ToInt32 を使用して Byte 配列を int に変換しています。

[0][26] の 2 バイトしかありませんが、関数には 4 バイトが必要なので、既存のバイトの先頭に 0 バイトを 2 つ追加する必要があります。

最も速い方法は何ですか。

ありがとうございました。

4

3 に答える 3

2

おそらく(int)BitConverter.ToInt16(..)代わりに行う必要があります。 ToInt16に 2 バイトを読み込むように作成されますshortint次に、それをキャストでに変換するだけです。

于 2012-07-20T02:44:34.470 に答える
2

2 バイトのみを読み取る BitConverter.ToInt16 を呼び出す必要があります。

shortに暗黙的に変換可能intです。

于 2012-07-20T02:44:44.733 に答える
1

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 のままです)。

于 2012-07-20T02:43:24.217 に答える