2016-10-31 13 views
1

フロート値を私のBluetoothデバイスからma android appに転送したい。 Bluetoothのすべてのデータがバイト単位で転送されます。 float値は4バイトに分割する必要があります。4バイトからfloat変数を回復する

enter image description here

問題は、私は私のAndroidアプリのコード内のfloat値にこれらの4バイトを回復する方法がわからないということです。

たとえば、float値は29.2に等しく、バイナリ= 41 E9 C4 F3で同等です。

so byte [0] = 0xF3;バイト1 = 0xC4;バイト[2] = 0xE9。バイト[3] = 0x41;

float value; 
value = ((byte[0]) | (byte[1] << 8) | (byte[2] << 16) | (byte[3] << 24)); 

と私はあまりにもキャストを試みたが、それは動作しません:

は、ここで私はfloat型の値を回復するために私のAndroidアプリのコードでやったことです。

float value; 
value = (float)((byte[0]) | (byte[1] << 8) | (byte[2] << 16) | (byte[3] << 24)); 

実際に私がこれを行うとき、アプリケーションは32ビット整数としてそれを読んでいます。それは私に41E9C4F3に16進数で相当する10進数の値1105839347を表示します。

しかし、実際には、1バイトあたりの浮動小数点値を再構成したいと考えています。

どうすればいいですか?

FI:あなたはBitConverter.ToSingleを読むことができhttps://dotnetfiddle.net/jIRK3h

:私はあなたがBitConverterクラス

var f = BitConverter.ToSingle(byteArray, 0); 

デモを使用することができますC#の/ xamarin

よろしく、

答えて

2

を使用して、私のAndroidアプリをコーディング文書here

関連する問題