我在 Java 中有一个 8 位字节数组。字节数组由它从外部传感器接收的 16 位数字的高字节和低字节组成。
例如,字节数组可能如下:
00 00 00 01 00 02 00 03
0 1 2 3 4 5 6 7
在上面的字节数组中,每个偶数索引是 16 位数字的高字节,每个奇数索引是低字节。
我遇到的问题是当数字大于 127 时,导致数字的 2 的补码表示占上风。我真正想做的是保持正数无符号数。因此我不关心 2 的补码。这是我试图做的没有成功的事情。
byte[] buffer = new byte[1024];
//SOME CODE SNIPPET THAT PUTS NUMBERS B/W 0-500 INTO THE BUFFER RANDOMLY
for(int i = 0; i < 1024; i+=2) {
int twoByte = 0;
short high = 0, low = 0;
high = (short)buffer[i];
low = (short)buffer[i+1];
twoByte = ((high << 8) | low);
System.out.println(twoByte);
}
我试图转换为短以使 8 位数字无符号,但似乎 java 截断了前导 0 的广告将其视为 8 位并保留负号。有谁知道也许更好的方法?
## 编辑:我不知道这是否重要,但值得一提的是,这是一个在 Android 上运行的应用程序。##
干杯,