Android十六进制到十进制转换

时间:2016-05-16 11:58:55

标签: java android obd-ii

我需要一些帮助,将我从汽车中的OBD适配器获得的答案转换为十进制,然后将转换后的任何值添加到公式并打印出来。

public void run() {
     OBDcmds();

     try {
         OdbRawCommand ANS = new OdbRawCommand("22 40 90");


         while (!Thread.currentThread().isInterrupted()) {
             Log.d("Log", "ANS: " + ANS.getFormattedResult());

             try {
                 ANS.run(mmInStream, mmOutStream);
             } catch (InterruptedException e) {
                 e.printStackTrace();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("inside catch before while");
            }
        }
当被问到ANS会返回类似" 6240901F30"前6个数字与答案无关( 624090 1F30)。所以我们剩下的是最后一个(在这种情况下)4个数字(1F30),它们是十六进制的,需要转换为十进制。然后,此值将添加到公式x * 0,0625 - 512中。它需要跳过这六个第一个数字,否则答案是错误的。

我怎么能把它拉下来?

1 个答案:

答案 0 :(得分:1)

Integer.parseInt与" radix"一起使用论点:

System.out.println(Integer.parseInt("1F30", 16));

输出

  

7984