File: gen_bitreverse_tab.py

package info (click to toggle)
libdeflate 1.23-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,072 kB
  • sloc: ansic: 11,716; sh: 1,388; python: 169; makefile: 31
file content (19 lines) | stat: -rwxr-xr-x 523 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3
#
# This script computes a table that maps each byte to its bitwise reverse.

def reverse_byte(v):
    return sum(1 << (7 - bit) for bit in range(8) if (v & (1 << bit)) != 0)

tab = [reverse_byte(v) for v in range(256)]

print('static const u8 bitreverse_tab[256] = {')
for i in range(0, len(tab), 8):
    print('\t', end='')
    for j, v in enumerate(tab[i:i+8]):
        print(f'0x{v:02x},', end='')
        if j == 7:
            print('')
        else:
            print(' ', end='')
print('};')