0

BitConverter.ToUInt16()は、バイトが反転することを期待しています。これが、バイトがメモリに格納される方法だと思います。しかし、配列を変更せずに、逆にしない場合、どうすれば変換できますか?

Byte[] ba = { 0, 0, 0, 6, 0, 0 };
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006
4

3 に答える 3

4

エンディアンを大きくするか小さくするかを指定できるmyinが必要EndianBitConverterなようです。MiscUtil

BitConverter基本的には、インスタンスメソッドと同じ機能を提供します。次に、適切な種類を取得し、それを使っEndianBitConverterてやりたいことを行います。

(これは、配列を効率的に操作するためのもう少し多くの機能を提供します。これは、役立つ場合と役に立たない場合があります。)

ライブラリは、かなり寛容なライセンスの下でオープンソースになっています。

于 2009-04-29T16:46:06.483 に答える
0

IPAddress.HostToNetworkOrderを使用することもできます。

于 2009-04-29T16:48:14.760 に答える
-1

Array.Reverseメソッドを使用して配列を逆にするのが最善の方法だと思います。

http://msdn.microsoft.com/en-us/library/system.array.reverse(VS.71).aspx

于 2009-04-29T16:45:39.493 に答える