#!/usr/bin/env python def bits(x) : masks = (0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01) return "".join(("1" if (x & mask) else "0" ) for mask in masks) def reflected(x) : result = 0 masks = (0x81, 0x42, 0x24, 0x18) outcomes = ((0x80, 0x01), (0x40, 0x02), (0x20, 0x04), (0x10, 0x08)) for mask, outcome in zip(masks, outcomes) : y = x & mask if y in outcome : y ^= mask result |= y return result for i in xrange(256) : print i, bits(i), bits(reflected(i))