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 }