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 }

 

posted @ 2013-12-19 17:31  will_N  阅读(5225)  评论(0编辑  收藏  举报