在十六进制中将十六进制字符串转换为整数

时间:2013-12-17 06:55:44

标签: android bluetooth android-bluetooth

我有一个蓝牙应用程序,它以这种格式接收Hexa格式的数据 “01 0D 18 DA F1 10 03 41 0D 00

将其转换为小数并显示在我的应用中。

我正在使用这种逻辑。

int myInt = Integer.parseInt(data1,16);

但我想转换像上面例子中的particluar字节。我想只将“03 41”解码为十进制并显示。 请帮帮我。

3 个答案:

答案 0 :(得分:1)

它对于一个int来说太大了(这是4个字节并且已签名)。 Java Integer可以处理的最大值是2147483657,或2 ^ 31-1 因此,您应该使用 long ,然后将其强制转换为 int

使用

int myInt =(int)Long.parseLong(data1,16);

希望这会有所帮助..!

答案 1 :(得分:1)

你可以做的是用data1.split(" ")拆分字符串,然后得到你需要的部分。之后,只需通过Integer.parseInt(input, 16)方法运行,我认为应该是这样。

供参考,here's String.split()

上的javadoc

答案 2 :(得分:1)

您需要做的是拆分Hex字符串并将其存储在类似

的数组中
String[] array=Hex.split("\\s+"); //using space 

然后像

一样解析它
int myInt = Integer.parseInt(array[1]+" "+array[2],16);