フロート値を私のBluetoothデバイスからma android appに転送したい。 Bluetoothのすべてのデータがバイト単位で転送されます。 float値は4バイトに分割する必要があります。4バイトからfloat変数を回復する
問題は、私は私の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
よろしく、