2011-01-28 31 views
11

我在Java中有一些int變量中的數據(範圍在0和64000之間)。如何轉換爲字節這個整數?我需要從int只有兩個較低的字節(範圍是好的)。如何提取這個?從int變量中獲取兩個低位字節

回答

22

您可以0xFF得到通過取與整數的最低字節:

byte lowByte = (byte)(value & 0xFF); 

這工作,因爲0xFF具有零位隨處可見的第一個字節以上。

要獲得倒數第二個字節,你可以在數8點下移的所有位後重復這一招:

byte penultimateByte = (byte)((value >> 8) & 0xFF); 
+2

+1雖然它不是一招,這就是所謂的「算術移位」 ;-) – 2011-01-28 09:06:54

3

你不必做,操作以獲取較低字節只是將其轉換爲字節並獲取字節變量中的低位字節。

嘗試以下兩種會給你同樣的結果

short value = 257; 
System.out.println(value); 
byte low = (byte) value; 
System.out.println("low: " + low); 
byte high = (byte)(value >> 8); 
System.out.println("high: " + high); 

value = 257; 
System.out.println(value); 
low = (byte) (value & 0xFF); 
System.out.println("low: " + low); 
high = (byte) ((value >> 8) & 0xFF); 
System.out.println("high: " + high); 

或者試試Ideone.com

相關問題