在Java字节设置操作中以字节为符号(+/-)

时间:2011-06-30 14:55:54

标签: java c++ char byte

我在Java中贬低

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

现在,如果我正在做

orbits[24] = (byte)0xFF;

orbits [24]应该由11111111填充,即FF(十六进制),而是填充-1。

C ++中的这个操作完美地运行

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

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

1 个答案:

答案 0 :(得分:6)

嗯,只是发生了-1是0xFF。一切都是正确的。 byte使用two's complement存储-128到127之间的值。

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