因為java沒有無符號數,所以在byte值大於127時,java表達的是負數。
例如:
byte b = (byte)152;// b的值在java中表達的是:-104,二進位值是:10011000。
int i = b;// i 的值 在java中表達的是:-104,二進位值是:11111111111111111111111110011000
如果想要 i 的值等於152,需要以下運算:
/**
* byte轉int,對於b值大於127時必須用。
*
* @param b
* @return
*/
protected int byte2Int(byte b) {
return b & 0xFF;
}
i = byte2Int(b);// 現在 i 的值在java中表達的是:152,二進位值是:00000000000000000000000010011000