BitConverter.ToUInt16()は、バイトを逆にすることを想定しています。しかし、それを逆にしていないときに、どのように変換することができますか?Byte配列をC#のInt-likesに変換する
Byte[] ba = { 0, 0, 0, 6, 0, 0 };
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006
BitConverter.ToUInt16()は、バイトを逆にすることを想定しています。しかし、それを逆にしていないときに、どのように変換することができますか?Byte配列をC#のInt-likesに変換する
Byte[] ba = { 0, 0, 0, 6, 0, 0 };
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006
ですね、私、あなたがビッグまたはリトルエンディアンを使用するかどうかを指定できますEndianBitConverter
MiscUtil
で、。
基本的にBitConverter
と同じ機能を提供しますが、インスタンスメソッドと同じ機能を提供します。あなたはEndianBitConverter
の適切な種類を取得し、あなたがそれで欲しいものを行います。
は(それはあるいはあなたにとって有用であってもなくてもよいアレイを、効率的に作業するための少しより多くの機能を提供します。)
ライブラリはかなり寛容なライセンスの下でオープンソース化です。
私はあなたの最善の呼び出しは、Array.Reverseメソッドを使用して配列を逆転させることだと思います。あなたが望むように
http://msdn.microsoft.com/en-us/library/system.array.reverse(VS.71).aspx
これは、各Int16のバイトだけでなく、配列全体を逆にします。 –
ジョンの権利、それは私が避けようとしていたものです。しかし、返信thnx! – flamey
また、IPAddress.HostToNetworkOrderを使用することもできます。
「これを変更したいのであれば、jon skeetがあなたのコードをよく知っていて、あなたのコードに合わせてこれを既に最適化しているので」かなり許可された意味ですか? –