package org.hwo; public class Reverse { byte[] reverseTable; public Reverse() { reverseTable = new byte[256]; buildReverseTable(); } private void buildReverseTable() { for (short i=0;i<256;i++) { short in = i; byte out = 0; for (int n=0;n<8;n++) { out <<= 1; if ((in & 0x01)==0x01) out |= 0x01; in >>= 1; } reverseTable[in] = out; } } public byte reverse(byte in) { short s = Unsigned.byte2short(in); return reverseTable[s]; } }