int與byte數據之間的轉換


  在OutputStream中寫入一個int類型,會截取其低8位,丟棄其高24位,因此,需要將基本類型先轉換為字節流。

  將int數字轉換為字節流

 1 /**
 2      * int轉byte[]
 3      * 該方法將一個int類型的數據轉換為byte[]形式,因為int為32bit,而byte為8bit所以在進行類型轉換時,知會獲取低8位,
 4      * 丟棄高24位。通過位移的方式,將32bit的數據轉換成4個8bit的數據。注意 &0xff,在這當中,&0xff簡單理解為一把剪刀,
 5      * 將想要獲取的8位數據截取出來。
 6      * @param i 一個int數字
 7      * @return byte[]
 8      */
 9     public static byte[] int2ByteArray(int i){
10         byte[] result=new byte[4];
11         result[0]=(byte)((i >> 24)& 0xFF);
12         result[1]=(byte)((i >> 16)& 0xFF);
13         result[2]=(byte)((i >> 8)& 0xFF);
14         result[3]=(byte)(i & 0xFF);
15         return result;
16     }
17     /**
18      * byte[]轉int
19      * 利用int2ByteArray方法,將一個int轉為byte[],但在解析時,需要將數據還原。同樣使用移位的方式,將適當的位數進行還原,
20      * 0xFF為16進制的數據,所以在其后每加上一位,就相當於二進制加上4位。同時,使用|=號拼接數據,將其還原成最終的int數據
21      * @param bytes byte類型數組
22      * @return int數字
23      */
24     public static int bytes2Int(byte[] bytes){
25         int num=bytes[3] & 0xFF;
26         num |=((bytes[2] <<8)& 0xFF00);
27         num |=((bytes[1] <<16)& 0xFF0000);
28         num |=((bytes[0] <<24)& 0xFF0000);
29         return num;
30     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM