1. 程式人生 > >Java中將byte陣列中的4個數據轉成int

Java中將byte陣列中的4個數據轉成int

public static int getIntFromBytes(byte high_h, byte high_l, byte low_h, byte low_l) {
        return (high_h & 0xff) << 24 | (high_l & 0xff) << 16 | (low_h & 0xff) << 8 | low_l & 0xff;
    }

1、位元組位元的高低位為:從左到右,依次降低。
高————————>低
0101 0101 0000 1111 0101
2、’<<’:左移運算子,num << 1,相當於num乘以2;
‘>>’ : 右移運算子,num >> 1,相當於num除以2
‘>>>’: 無符號右移,忽略符號位,空位都以0補齊
3、<< 、 | 、()、三種運算子的優先順序為’()

’ > ‘<<’ > ‘|
4、上面程式碼的實現過程其實就是,一個int整形資料在二進位制形式下有32位資料,所以,將第一個byte資料high_h左移24位,作為最終int的最高8位。將第二個byte資料high_l左移16位,作為第23~16位……,然後在進行‘|’操作,形成最終的int整形資料。其實是形成4個int後再依次進行’|’操作。