2014-01-21 45 views
-1

我想用一個整數創建一個字節。例如,我有4個整數,我想和值4。創造一個字節當我這樣做從一個整數創建一個字節

byte test = 134; 

我得到的-122的字節值wheras我想簡單地134字節值以便我可以稍後將其轉換爲ascii。

我不確定如何做到這一點,但會歡迎任何可以提供的幫助。謝謝。

+3

字節總是在-128到127之間。 –

+2

_「我想要一個簡單的字節值134」_字節值的範圍是'[-128,127]' –

+0

這絕對不能編譯。 –

回答

0

在Java中,所有字節都被簽名。它們的值從-128到127.如果你打印出這個字節,這就是你會得到的。

但是Java對字符有不同的類型。你應該使用這樣的:

char test = 134; 

char類型是無符號,將容納多達65,535數值字符。

+0

@DavidWallace我現在在嗎? – tbodt

+0

你不需要施放它。 – Alex

3

在Java中,byte被解釋爲帶符號(連同ints,shorts和longs)。無符號字節值134與有符號字節值-122的位等效。如果您希望使用byte的無符號值,可以通過存儲在一個有符號整數,該值超過8位,如int這樣做:

byte test = (byte) 134; 
int unsignedByteValue = ((int) test) & 0xff; 
// now unsignedByteValue == 134 

0xff位掩碼確保只有unsignedByteValue的低8位是1。否則,簽名爲byte的負號將導致負號int通過符號擴展。

+0

你能解釋第二行是什麼嗎? –

相關問題