java float 轉byte[]


學習筆記,轉自http://tjmljw.iteye.com/blog/1767716

 1 public class float2bytes
 2 {
 3 
 4     /**
 5      * 浮點轉換為字節
 6      * 
 7      * @param f
 8      * @return
 9      */
10     public static byte[] float2byte(float f) {
11         
12         // 把float轉換為byte[]
13         int fbit = Float.floatToIntBits(f);
14         
15         byte[] b = new byte[4];  
16         for (int i = 0; i < 4; i++) {  
17             b[i] = (byte) (fbit >> (24 - i * 8));  
18         } 
19         
20         // 翻轉數組
21         int len = b.length;
22         // 建立一個與源數組元素類型相同的數組
23         byte[] dest = new byte[len];
24         // 為了防止修改源數組,將源數組拷貝一份副本
25         System.arraycopy(b, 0, dest, 0, len);
26         byte temp;
27         // 將順位第i個與倒數第i個交換
28         for (int i = 0; i < len / 2; ++i) {
29             temp = dest[i];
30             dest[i] = dest[len - i - 1];
31             dest[len - i - 1] = temp;
32         }
33         
34         return dest;
35         
36     }
37     
38     /**
39      * 字節轉換為浮點
40      * 
41      * @param b 字節(至少4個字節)
42      * @param index 開始位置
43      * @return
44      */
45     public static float byte2float(byte[] b, int index) {  
46         int l;                                           
47         l = b[index + 0];                                
48         l &= 0xff;                                       
49         l |= ((long) b[index + 1] << 8);                 
50         l &= 0xffff;                                     
51         l |= ((long) b[index + 2] << 16);                
52         l &= 0xffffff;                                   
53         l |= ((long) b[index + 3] << 24);                
54         return Float.intBitsToFloat(l);                  
55     }
56 
57 
58 public static void main(String[] args)
59 {
60 //float2bytes f2b = new float2bytes();
61 byte[] b = new byte[4];
62 float f = 11.21f;
63 b=float2byte(f);
64 for(int i=0;i<b.length;i++)
65 {
66 System.out.println(b[i]);
67 }
68 
69 System.out.println(byte2float(b,0));
70 }
71 
72 }

 


免責聲明!

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



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