2015年7月7日 星期二

「Java」把Int的值轉成 little endian byte array

假設有一個整數2000,二進制為 11111010000 ,用16進制表示為


big endian 表示成 0x07 0xd0

little endian 則會表示成 0xd0 0x07

差別在於一組數值,高位元與低位元擺放的位置相反。


 今天如果我要將2000用java轉成little endian 的 byte array ,

參考如下程式碼



 public static byte[] getLittle_endian (int number)
 {
        byte[] array=new byte[2];
        
        ByteBuffer bf=ByteBuffer.allocate(4);
        bf.order(ByteOrder.LITTLE_ENDIAN);
        bf.putInt(number);
        bf.flip();
        
        bf.get(array);
        
        return array;
 }

參考資料: http://stackoverflow.com/questions/11019279/write-an-integer-in-little-endian

沒有留言:

張貼留言