2016-05-16 27 views
-2

私の車の中のOBDアダプタから10進数に変換し、後で式に変換されて出力された値を追加するのに役立つ助けが必要です。尋ねAndroidの16進数から10進数への変換

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は、最初の6つの数字を答え( 1F30)とは無関係である "6240901F30" のようなものを返します。だから我々が残したのは最後の(この場合は)4進数(1F30)で、16進数であり、Decimalに変換する必要があります。この値は、後で式x * 0,0625 - 512に追加されます。 6つの最初の数字を飛び越える必要があります。それ以外の場合、答えは間違っています。

どうすればこの問題を解決できますか? "基数" 引数で

答えて

1

使用Integer.parseInt

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

が出力:

+1

"基数" とは何ですか? –

+0

@EvgeniyMishustinは "base"とも呼ばれ、与えられた数値表現で存在する異なる数字の数です。たとえば、 'binary <=> radix = 2'; 'octal <=> radix = 8'; 'hexadecimal <=> radix = 16'です。 –

+0

「1F30」は静的な値ではありません。つまり、私はwhileループでそれを持っているので、 "1F30"は別の番号に更新されます。これは車内のバッテリの電流を計算しているため、悲しいことには機能しません。 – swess