在 Java 中,没有无符号字节这种东西。
处理一些低级代码时,有时您需要处理无符号值大于 128 的字节,这会导致 Java 将它们解释为负数,因为 MSB 用于符号。
有什么好的方法可以解决这个问题? (说不使用 Java 不是一种选择)
最佳答案
如果你这样做,实际上可以去掉 if 语句和加法。
byte[] foobar = ..;
int value = (foobar[10] & 0xff);
这样,Java 不会将字节解释为负数,也不会翻转整数上的符号位。
关于java - 解决所有 Java 字节都已签名这一事实的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088/