2011-06-30 46 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 –