为了账号安全,请及时绑定邮箱和手机立即绑定

4字节长整型,如何转变为java的long数字?

4字节长整型,如何转变为java的long数字?

湖上湖 2018-07-22 07:50:19
如: 7D 17 4F 5B这是一个时间字节。大概应该是 1531881242100 才得到当前的时间截。但是,我解码出来,总是数字不对。这是从modbus里读取来的数据。反正,高低位,转换来转换去,就是时间不对。如何求解?以上得出一个 long值,然后用SimpleDateFormat 转为 时间格式的内容。
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

把hex转换为long就可以了,代码就不贴了。你这个四字节是32位,而long是64位,所以你应该是少算了4个字节。

查看完整回答
反对 回复 2018-07-22
?
精慕HU

TA贡献1845条经验 获得超8个赞

经过不断尝试,无法解析.

 @Test    public void test9(){
        Date date=new Date(1531910014000L);
        System.out.println(date);
    }
    
    @Test    public void test10(){        String[] strs=new String[]{"7D","17","4F","5B"};        long lng=1;        for(int i=0;i<strs.length;i++){
            lng+=Integer.valueOf(strs[i], 16) * Math.pow(256, Math.abs(i));
        }
        lng*=1000;
        System.out.println(lng);
    }

test10输出:1531910014000
test9输出:Wed Jul 18 18:33:34 CST 2018

查看完整回答
反对 回复 2018-07-22
  • 2 回答
  • 0 关注
  • 588 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信