12

私はこのようなものを変換できませんでした:

byte[] b = new byte[] { 12, 24, 19, 17};

このようなものに:

float myfloatvalue = ?;

誰かが私に例を教えてください。

また、そのフロートをバイトに戻す方法は?

4

3 に答える 3

37

byte[]->float

ByteBuffer:

byte[] b = new byte[]{12, 24, 19, 17};
float f =  ByteBuffer.wrap(b).getFloat();

float->byte[]

逆の操作(上記の結果を知っている):

float f =  1.1715392E-31f;
byte[] b = ByteBuffer.allocate(4).putFloat(f).array();  //[12, 24, 19, 17]
于 2013-01-13T22:08:32.780 に答える
18

byte[]->からfloat、次のことができます。

byte[] b = new byte[] { 12, 24, 19, 17};
float myfloatvalue = ByteBuffer.wrap(b).getFloat();

->ByteBuffer.allocateの変換に使用する代わりの方法を次に示します。floatbyte[]

int bits = Float.floatToIntBits(myFloat);
byte[] bytes = new byte[4];
bytes[0] = (byte)(bits & 0xff);
bytes[1] = (byte)((bits >> 8) & 0xff);
bytes[2] = (byte)((bits >> 16) & 0xff);
bytes[3] = (byte)((bits >> 24) & 0xff);
于 2013-01-13T22:08:39.157 に答える
2

バイトを int に変換し、Float.intBitsToFloat() を使用します。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Float.html#intBitsToFloat(int )

于 2013-01-13T22:07:37.113 に答える