有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从Modbus读取长(交换)值?

我需要从Modbus寄存器读取长(交换)值

enter image description here

从上面的图片中,我想读取值为78146789的寄存器42002。这是长(交换)格式。以十进制格式显示如下:

enter image description here

我正在使用JavaShorts数组来阅读这篇文章。我得到的是正确的119227877。现在我需要将这些值转换为正确的值,在本例中为78146789。如何做到这一点?这里表示的长度(交换)是多少


共 (1) 个答案

  1. # 1 楼答案

    你可以用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());
    }