1

我正在尝试了解 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 的零字节?

4

2 回答 2

2

bslval是一个字节数组。Java 中的数组索引从 0 到 lenght-1。索引 0 处的数组值也是如此bslval[0]。它是数组中的第一个字节。

final意味着您不能更改 的值bslval以使其指向另一个数组。

于 2013-08-20T12:39:02.863 回答
0

你首先要了解的是[]表示数组,这意味着它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,即数组中的第四个字节

于 2013-08-20T12:44:25.293 回答