From: Hans van Maanen <hvmaanen@...>

Date: Fri, 22 Oct 1999 14:22:00 +0200

Date: Fri, 22 Oct 1999 14:22:00 +0200

Hi -- I remember asking... > >>What would be the fastest way to swap eight bits, so that e.g. 64 becomes 2 >>(01000000 <> 00000010) and 192 becomes 3 (11000000 <> 00000011)? > ... and then I thought: 'Split the byte in half, and make a lookup-table of inverted '4-bit numbers, e.g. f(7) = 14, because 0111 <> 1110 DIM f(15) DATA 0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15 FOR i = 0 TO 15 READ f(i) NEXT 'Then twiddle the bits of the two halves of the byte, e.g. if our byte is a = 26 = &1A a = &1A b1 = a / 16 'b1 = &1 b2 = a MOD 16 'b2 = &A c = 16 * f(b2) + f(b1) ' c = 16 * 5 + 8 = &58 'Which gives the reversed byte in c. How's that? It seems about midway between the two beautiful suggestions Robert Purves made, doesn't it? Now, there should be a way to find the reverses without recourse to a lookup-table... Thanks all for input, Hans van Maanen