我正在尝试理解Android应用程序的代码。

该代码定义了最后一个字节

            // defines bsval to be a bytearray which has been received from the remote device
            final byte[] bslval = data1.getByteArray(HRPService.BSL_VALUE);


我的问题是关于bslval [0],它出现在代码的后半部分

try
                        {
                            Log.i(TAG, "BYTE BSL VAL =" + bslval[0]);
                            TextView bsltv = (TextView) findViewById(R.id.BodySensorLocation);
                            bsltv.setText("\t" + mContext.getString(R.string.BodySensorLocation)
                                    + getBodySensorLocation(bslval[0]));
                        }
                        catch (Exception e)
                        {
                            Log.e(TAG, e.toString());
                        }


bslval [0]实际上是什么? bslval?的零字节。

最佳答案

您必须了解的第一件事是[]表示数组,这意味着bslval是一个数组。如果要写出一个字符串数组,它将看起来像这样;

["this", "is", "a","string", "array"]

数组就像一个列表,当您编写byte b = bslval[0]时,您将获得列表的第一项,因为java中的列表从零开始。如果要写byte b = bslval[1],则第二个字节将从列表中移出。

因为一个字节是一个很小的数字(我认为是126--126),所以您的数组可能看起来像这样;

[80, 89, 35, 12, 44]

如果那是您的数组,并且您写了byte b = bslval[3],则b等于12,即数组中的第四个字节

10-01 22:43