2013-08-20 8 views
0

我有这样的代码:如何从ASCII格式转换为十进制

final byte[] bslval = data1.getByteArray(HRPService.BSL_VALUE); 

runOnUiThread(new Runnable() 
{ 
    public void run() 
    { 
     if (bslval != null) 
     { 
      try 
      { 
       Log.i(TAG, "BYTE BSL VAL =" + bslval[0]); 
       //TextView bsltv = (TextView) findViewById(R.id.BodySensorLocation); 
       EditText bsltv = (EditText) findViewById(R.id.EditSensorLocation); 
       String bslstr = new String(bslval, "UTF-8"); 
       bsltv.setText(bslstr);         
      } 
      catch (Exception e) 
      { 
       Log.e(TAG, e.toString()); 
      } 

的EditText上确实显示的值作为“d”,而不是“64”(我想)。我该如何将它转换为小数?

+0

为什么要这样做? 'new String(byte [],String)'根据编码使用字节创建一个新的String。 TextUtils.join可以做你想做的。 – njzk2

回答

2

事情是这样的:

String bslstr = String.valueOf(bslval[0] & 0xff); 

这是假设,该值实际上是bslval[0]& 0xff(byte)0x80(byte)0xff之间的字节值得到肯定的结果。

0

如果您只想将第一个字节值bslval[0]设置为文本,请使用更简单的字符串连接。

bsltv.setText(bslval[0] + "");