Commit | Line | Data |
---|---|---|
3f5430db MM |
1 | package net.mattmccutchen.measurements; |
2 | ||
3 | public class BitFlicking { | |
4 | private BitFlicking() {} | |
5 | ||
6 | public static void storeLong(byte[] data, long val, int off) { | |
7 | //System.err.println("Store long: " + val); | |
8 | data[off ] = (byte)(val >> 56); | |
9 | data[off+1] = (byte)(val >> 48); | |
10 | data[off+2] = (byte)(val >> 40); | |
11 | data[off+3] = (byte)(val >> 32); | |
12 | data[off+4] = (byte)(val >> 24); | |
13 | data[off+5] = (byte)(val >> 16); | |
14 | data[off+6] = (byte)(val >> 8); | |
15 | data[off+7] = (byte)(val ); | |
16 | } | |
17 | ||
18 | public static void storeDouble(byte[] data, double val, int off) { | |
19 | storeLong(data, Double.doubleToRawLongBits(val), off); | |
20 | } | |
21 | ||
22 | public static long loadLong(byte[] data, int off) { | |
23 | long val = | |
24 | (((long)data[off ] & 0xFF) << 56) | |
25 | | ((long)(data[off+1] & 0xFF) << 48) | |
26 | | ((long)(data[off+2] & 0xFF) << 40) | |
27 | | ((long)(data[off+3] & 0xFF) << 32) | |
28 | | ((long)(data[off+4] & 0xFF) << 24) | |
29 | | ((long)(data[off+5] & 0xFF) << 16) | |
30 | | ((long)(data[off+6] & 0xFF) << 8) | |
31 | | ( (data[off+7] & 0xFF) ); | |
32 | //System.err.println("Load long: " + val); | |
33 | return val; | |
34 | } | |
35 | ||
36 | public static double loadDouble(byte[] data, int off) { | |
37 | return Double.longBitsToDouble(loadLong(data, off)); | |
38 | } | |
39 | } |