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 }