2017-09-22 10 views
0

modbusの32ビットワードをC#で浮動小数点に変換する方法は?ここmodbus 32ビットワードをC#floatに変換するには?

私が持っているコードは次のとおりです。

float Modbus_Floating(byte[] temp) 
    { 
     byte[] temp2 = new byte[4]; 
     temp2[0] = temp[3]; 
     temp2[1] = temp[2]; 
     temp2[2] = temp[1]; 
     temp2[3] = temp[0]; 

     float f = System.BitConverter.ToSingle(temp, 0); 

     return f; 
    } 

、私が36.7

[0] 102 byte 
    [1] 102 byte 
    [2] 66 byte 
    [3] 22 byte 

を取得する必要があり、大きな負の数 を取得していますが、私はそれを取得していない午前 、機能していません。 なぜですか?あなたがチェックする必要があり、物事の

答えて

2

カップル:

  • お使いのデバイスの試合C#floatの標準IEEE-754に対応していますか?
  • あなたのデバイスが使用するエンディアンはどれですか?あなたはそのエンディアンの下に見ることができます

    は、あなたがこれらすべてとBitConverterが失敗した程度確信しているとき、あなたは常に、手動it's fairly easy as in this exampleを解析することができますDWORD

    http://store.chipkin.com/articles/modbus-floating-point-encoding

に反対し、WORDごとにすることができ、あなたが仕様を持っているならば。

+0

助けてくれてありがとうございました – Brandon

+0

あなたは歓迎します。 – Aybe

+0

@Brandon [回答を受け入れる方法は?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – I4V

関連する問題