2017-02-13 11 views
0

これは私の問題です。私はxamarin pclでバイト配列をC#でintに変換する必要があります。xamarin pclでバイト配列をIntに変換するc#

byte[] fromBoardSerial = new byte[3]; 
fromBoardSerial[0] = 0x04 
fromBoardSerial[1] = 0x93 
fromBoardSerial[2] = 0xe0 

result = BitConverter.ToInt32(fromBoardSerial, 0); 

ソリューション: しかし、私は、このしようと試みてきた

Array.Reverse(fromBoardSerial); //call before conversion 

しかし結果です:-527236096は...代わりに... は正しい結果がでなければなりません:300000 Intの配列バイトからの変換はどのようにしますか?

おかげ

+0

整数は4バイトで構成されて何か問題があるに違いありませんか? – NtFreX

+0

はい、正解です...あなたが試してみてください:http://www.binaryhexconverter.com/hex-to-decimal-converter –

答えて

1

あなたがここに二つの問題持っているように見えます:

  1. バイト数を。 Int32への変換には4バイト必要です。
  2. バイトオーダー。数字を「後方に」計算しようとしているようです。

このコードを見てみましょう。

byte[] fromBoardSerial = new byte[4]; 
fromBoardSerial[0] = 0xe0; 
fromBoardSerial[1] = 0x93; 
fromBoardSerial[2] = 0x04; 
fromBoardSerial[3] = 0x00; 

var result = BitConverter.ToInt32(fromBoardSerial, 0); // result = 300000 
+0

私はこれで解決しました:Array.Reverse(fromBoardSerial);ビット変換後...あなたが答えを更新すれば私は正解をチェックする –

関連する問題