两个 16 位整数到一个 32 位浮点值

Two 16 bit ints to One 32 bit float value

我能够从 modbus 中提取值作为 16 位短整型(无符号)或整数(应被视为 16 位字)。我的任务是使用 java.

组合两个值来创建一个 32 位浮点值

我使用 gui 程序观察到的一些示例值:

我尝试了位运算符,但似乎没有成功。 让我摸不着头脑!

您可以使用 Float.intBitsToFloat(int bits)int 的位构建 float

short high = ... // the high 16 bits
short low = ... // the low 16 bits
int combined = (high << 16) | low;
float num = Float.intBitsToFloat(combined);

例如:

short high = 17530;
short low = 8192;

产生浮点数1000.5