【发布时间】:2010-12-05 01:10:36
【问题描述】:
我最近被要求接管一个项目,在该项目中,波形数据从电源转换器中采样并发送到智能代理,在该代理中进行计算并根据结果采取适当的行动。
下面的(java)sn-p是前面编码器用来将字节数组转换成双精度数组的:
LSB = (0XFF & (int)ipPacket[index]);
double temp = LSB/256.0;
MSB = (byte)(0XFF & (byte)ipPacket[index+1]);
double output = (double)(MSB + temp);
ConvCurrentPhaseR[doubleArrayIndex] = (double)(output);
(注:LSB为整数,MSB为字节)
老实说,我不知道以前的编码员是如何提出这种转换的。这对我来说没有任何意义。为什么要将 LSB 除以 256?即使原始数据是浮点数(4 字节),我们如何从仅 2 字节中得到双精度(8 字节)?谁能解释这段代码发生了什么?
提前感谢您提供的任何帮助!
【问题讨论】:
标签: java floating-point double byte type-conversion