0

そうです:

Dim BytArr() as Byte = BitConverter.GetBytes(1234)

デフォルトでは 32 ビットであるため、4 バイト要素を返します。

2バイトのように返すように制御できるようにしたい。たぶん3バイトだけ。それを制御するための組み込み関数はありますか?

shift などの使用に依存したくありません>> 8 >> 16 >> 24 >> 32

また、GetBytes() 内のデータを特定のデータ型にキャストする型に依存したくありません。

4

1 に答える 1

2

GetBytesデフォルトが 32 ビットであるということではなくGetBytes、データ型を保持するために必要なサイズの配列を返すということです。Long を渡すと、配列に 8 つの要素が含まれます。

これを制御する最善の方法は、実際に渡すデータをキャストすることです。そうしないと、数値の一部が切り捨てられる可能性があります。

そうは言っても、次のようなことができます。

Dim BytArr() as Byte = Array.Resize(BitConverter.GetBytes(1234), 2)

しかし、渡した値が 2 バイトで格納できる量を超えた場合 (この場合)、非常に壊れたコードがいくつか作成されます。

于 2012-09-10T12:56:24.007 に答える