2

車速に関するデータを受信して​​います。入力形式を制御することはできませんが、データを使用する必要があります。

データは Base64 でエンコードされた値として送信されます。どうやら、データはリトルエンディアン形式の数値として開始されたようです。現在、私のコードは次のとおりです。

public int b64ToInt(string Input){

    byte[] Output = Convert.FromBase64String(Input);
    Array.Reverse(Output);
    if (Output.Length == 1)
    {
        return (int)Output[0];
    }
    else if (Output.Length == 2)
    {
        return (int)BitConverter.ToInt16(Output, 0);
    }
    else
    {
        return BitConverter.ToInt32(Output, 0);
    }
}

これは、受け取ったほとんどの値で機能しますが、すべてではありません。ちなみに、この値を MPH に変換するには、1150.78 で割る必要があります。

次の値が有効です: AAB6Qg== 27.19720537374 MPH に変換されます。

次の値は機能しません: AA09 どうやら、出力配列の長さは 3 バイトで、この状況を処理する方法がわかりません。

表示されるエラー メッセージは次のとおりです。

4

1 に答える 1