2011-06-30 44 views
2

我declearing在Java中符号(+/-)在Java字节设置操作字节错误

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

现在,如果我做

orbits[24] = (byte)0xFF; 

轨道[24]应该得到通过填充11111111即FF(十六进制),而是其填充-1。

这种操作在C++中正常使用

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

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

回答

6

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

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

+0

你是否在告诉我们,如果我们一点一点地比较它们,那么通过让我们说一个for循环它将在Java中是相等的。 – JavaBits

+0

是:http://www.ideone.com/qEDRx –