所以我通过蓝牙发送一些东西,为此我使用字节数组,我正在使用的字节数组之一我需要在发送之前更改其中一个值,使用这个......
private void sendIntensity(int I){
intensity[3] = (byte) i;
sendIntensity();
}
原始字节数组是这样组成的:
private byte[] intensity = new byte[]{58,0,42,0,10,13}
我从编辑文本中获取强度,获取文本并使用正则表达式找到他们想要使用的强度,我使用
int option = Integer.parseInt(text);
要做到这一点。基本上,任何低于 128 的数字都可以正常工作,我可以看到这一点,因为我将值记录在数组中,将其设置为 127 会记录58, 0, 42, 127, 10, 13
,但是当我执行 128 或超过 128 时,我会在记录它时得到一组奇怪的数据。
我将放入的最大数量是 255。
当我在使用时记录数组中的内容时,intensity[3] = (byte) 128;
我回来了50, 0, 42, -17, -66, -128, 10, 13
当我记录使用 129 时会发生什么时,我会回来50, 0, 42, -17, -66, -127, 10, 13
怎么了?为什么我不能50, 0, 42, 128, 10, 13
像我应该的那样回来?