Java字节设置操作中的字节出现符号(+/-)错误

Sign(+/-) error in byte in Java byte setting operations

本文关键字:字节 错误 符号 操作 设置 Java      更新时间:2023-10-16

我在Java 中进行去分类

public byte[] orbits = new byte[38];

现在如果我在做

orbits[24] = (byte)0xFF;

轨道[24]应该用11111111填充,即FF(十六进制(,但它却用-1填充。

此操作在C++中完美工作

char orbits[38]
orbits[24] = (char)0xFF;

如何使用字节在Java中复制类似的情况?感谢

恰好-1是0xFF。一切都是正确的。byte使用2的补码存储-128到127之间的值。

在Java中没有无符号类型。如果要使用位模式,请使用字节。0xFF和-1在这种情况下是相同的。如果你想使用数字,也就是说,0xFF实际上是255而不是-1,那么你需要使用更大的类型,比如short。