我需要从Modbus寄存器中读取Long(交换)值。
从上面的图片中,我想读取寄存器42002,其值为78146789。这是Long(交换)格式。看起来像十进制格式:
我正在使用Java shorts数组读取此内容。我正确得到1192,27877。现在,我需要将这些值转换为适当的值,在这种情况下为78146789。这个怎么做? Long(交换)在这里如何表示?
最佳答案
您可以使用ByteBuffer将短裤转换为多头。但是您必须添加前导0
public static void main(String[] args) {
short x = 1192;
short y = 27877;
ByteBuffer bb = ByteBuffer.allocate(8);
bb.clear();
bb.putShort((short) 0);
bb.putShort((short) 0);
bb.putShort(x);
bb.putShort(y);
bb.flip();
System.out.println("" + bb.getLong());
}