u_long byterev_long (u_long L) {
   u_long mask = 0x0101010101010101; return (((L & (mask << 0))
   << 7) | ((L >> 7) & (mask << 0)) |i
   ((L & (mask << 1)) << 5) | ((L >> 5) & (mask << 1)) |
   ((L & (mask << 2)) << 3) | ((L >> 3) & (mask << 2)) |
   ((L & (mask << 3)) << 1) | ((L >> 1) & (mask << 3)));
}
