0

如果我设置 TextView 字节如下:

byte[] byteArray = { 25, 20, -101 };
TextView encrypted_text = (TextView) findViewById(R.id.encrypted);
encrypted_text.setText(new String(byteArray));

然后我可以取回 25、20,但不能取回 -101 值。对于第三个字符,我总是得到 -3 作为输出:

Log.v(TAG, "3rd byte: "+ (byte) encrypted_text.getText().toString().charAt(2));

PS 实际上 -3 为所有不可见的字符返回。

如何从 TextView 取回我的 byteArray?

4

1 回答 1

1

我知道如何在 TextView 中存储和检索负字节值。首先,我们需要将有符号字节转换为无符号字节。因为在 Java 中所有类型都是签名的,所以我们需要手动完成:

// remove signed bit(32nd), keep value as "next" (127+...) positive byte value
int unsignedValue = 255 - ((int)byteArray[i])&0b1111111;
于 2012-11-16T12:41:24.353 回答