Java byte[]轉int如何實現

才智咖 人氣:1.5W

函式需要:

傳入一個一維byte陣列, 比如{255,255} 轉換為int 為65535,相當於16進位制FFFFH,以此類推,當傳入為{255,1}時,返回int為511,相當於1FFH.

基本上是用在協議解析上,當有兩個byte表示長度協議時,用此函式可以得到協議的長度。

程式碼如下:

Java程式碼

public static int bytesToInt(byte[] intByte) {

int fromByte = 0;

for (int i = 0; i < 2; i++)

{

int n = (intByte[i] < 0 ? (int)intByte[i] + 256 : (int)intByte[i]) << (8 * i);

tln(n);

fromByte += n;

}

return fromByte;

}

而網上找的一些其他程式碼就不頂用不知道為什麼,如:

Java程式碼

public static int bytesToInt(byte[] bytes) {

int num = bytes[0] & 0xFF;

num |= ((bytes[1] << 8) & 0xFF00);

return num;

}

TAGS:int Java byte