将intel十六进制字符串转换为Java中的普通十六进制

问题描述 投票:1回答:2

我有一个intel十六进制格式的字符串,需要将其转换为十六进制格式,然后从那里转换为十进制。数据是从GPS设备发送的。

这是我应该得到的结果

Intel hex  : 85630800 (input)

device hex : 00086385 

decimal    : 549765 

我如何得到这个?

我已经尝试将intel hex转换为二进制(因为intel hex是二进制的ascii rep),并且将二进制转换为hex,但是它没有给我输入85630800(intelhex)的值00086385(hex)] >>

我现在正在看这个库Java Intel hex parser https://github.com/j123b567/java-intelhex-parser

但是这是关于将十六进制的文件转换为二进制格式而不是字符串。我正在尝试查看我是否可以使用该代码(部分或全部),但似乎真的过分了。

也正在查看Convert Intel HEX file to binary file,但它适用于python。

一旦将其转换为普通十六进制,就可以使用Integer.ParseInt()或Long.ParseInt()十进制。

但是我无法将英特尔十六进制字符串转换为普通十六进制格式。有没有办法将intel十六进制字符串转换为java中的普通十六进制字符串或值?

更新

阅读答案后,我意识到要问的正确问题是如何将Little endian十六进制字符串转换为Big endian。我所拥有的GPS设备的文档将格式指定为inte hex

(也许是因为基于Intel的处理器是低位字节序),这使我无法理解我所拥有的数据格式。

我有一个intel十六进制格式的字符串,需要将其转换为十六进制格式,然后从那里转换为十进制。数据从gps设备发送。这是我应该得到Intel hex的结果:...

java hex
2个回答
5
投票

Integer的功能可以提供帮助,一个类应该阅读其Javadoc。


2
投票

如果需要将小尾数的十六进制字符串转换为大尾数的十六进制字符串,则可以从以下代码段开始。根据您需要在全局中解决的问题,可能需要进行一些调整。

© www.soinside.com 2019 - 2024. All rights reserved.