吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 567|回复: 7
收起左侧

[已解决] 十六进制字节数组如何转换为java对象

[复制链接]
黄色土豆 发表于 2024-4-3 14:33
本帖最后由 黄色土豆 于 2024-5-6 10:28 编辑

1、使用 PreparedStatement 增加数据;
image.png

2、第 1 个坐标传输的是int类型,222;
     第 2 个坐标传输的是BigDecimal类型,333;


3、下面看网络报文传输的格式;
image.png

4、这个 0xde 的十进制 222
      但是这个 333 是 BigDecimal 类型,所以在报文中显示为 0xc20422


image.png

问题:我想问的是,我通过网络报文包拿到 0xc20422 ,怎么转换为BigDecimal的java对象;

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
jianghujiangren + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

8taizi 发表于 2024-4-3 14:38
本帖最后由 8taizi 于 2024-4-3 14:39 编辑

float gasValFloat = ByteBuffer.wrap(val).order(ByteOrder.LITTLE_ENDIAN).getFloat();
DecimalFormat df = new DecimalFormat("#.###");
String gasVal = df.format(gasValFloat);BigDecimal bigDecimal = new BigDecimal(gasVal);需要注意是 否大小端转换
 楼主| 黄色土豆 发表于 2024-4-3 14:45
本帖最后由 黄色土豆 于 2024-4-3 14:46 编辑
8taizi 发表于 2024-4-3 14:38
float gasValFloat = ByteBuffer.wrap(val).order(ByteOrder.LITTLE_ENDIAN).getFloat();
DecimalFormat d ...

你好,val 并不是一个数值类型,看起来像是一个对象的十六进制;
也就是说,0xc20422 的十进制,结果并不是333,如果使用您那种方式,在.getFloat();就报错了
8taizi 发表于 2024-4-3 14:48
本帖最后由 8taizi 于 2024-4-3 14:49 编辑
黄色土豆 发表于 2024-4-3 14:45
你好,val 并不是一个数值类型,看起来像是一个对象的十六进制;
也就是说,0xc20422 的十进制,结果并 ...
hutool工具包  HexUtil.decodeHex("0xc20422 ");
byte[] val = new byte[4];  
 楼主| 黄色土豆 发表于 2024-4-3 14:55
8taizi 发表于 2024-4-3 14:48
hutool工具包  HexUtil.decodeHex("0xc20422 ");
byte[] val = new byte[4];

image.png
 楼主| 黄色土豆 发表于 2024-4-3 15:58
还有人吗
onesheeps 发表于 2024-4-3 16:01
感谢感谢

Text.

免费评分

参与人数 1吾爱币 -40 收起 理由
wushaominkk -40 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

 楼主| 黄色土豆 发表于 2024-4-3 16:12

这是什么意思啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表