BitConverter.ToUInt16()は、バイトが反転することを期待しています。これが、バイトがメモリに格納される方法だと思います。しかし、配列を変更せずに、逆にしない場合、どうすれば変換できますか?
Byte[] ba = { 0, 0, 0, 6, 0, 0 };
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006
エンディアンを大きくするか小さくするかを指定できるmyinが必要EndianBitConverter
なようです。MiscUtil
BitConverter
基本的には、インスタンスメソッドと同じ機能を提供します。次に、適切な種類を取得し、それを使っEndianBitConverter
てやりたいことを行います。
(これは、配列を効率的に操作するためのもう少し多くの機能を提供します。これは、役立つ場合と役に立たない場合があります。)
ライブラリは、かなり寛容なライセンスの下でオープンソースになっています。
IPAddress.HostToNetworkOrderを使用することもできます。
Array.Reverseメソッドを使用して配列を逆にするのが最善の方法だと思います。
http://msdn.microsoft.com/en-us/library/system.array.reverse(VS.71).aspx