View Javadoc

1   package org.paneris.bibliomania.fti;
2   
3   public class FivePacker {
4     private static long ulong(byte b) {
5       return b >= 0 ? (long)b : 256L + b;
6     }
7   
8     public static long number_(byte[] bytes, int off) {
9       return ulong(bytes[off + 0]) << 32 | ulong(bytes[off + 1]) << 24 |
10             ulong(bytes[off + 2]) << 16 | ulong(bytes[off + 3]) <<  8 |
11             ulong(bytes[off + 4]);
12    }
13  
14    public static void set_(byte[] bytes, int offset, long number) {
15      bytes[offset    ] = (byte)(number >> 32);
16      bytes[offset + 1] = (byte)(number >> 24);
17      bytes[offset + 2] = (byte)(number >> 16);
18      bytes[offset + 3] = (byte)(number >>  8);
19      bytes[offset + 4] = (byte) number       ;
20    }
21  }