#!/usr/bin/nickle
-int flip_bits(int a)
+int flip_bits(int a, int n)
{
int result = 0;
- for (int pos = 0; pos < 8; pos++)
+ for (int pos = 0; pos < n; pos++)
if ((a & (1 << pos)) != 0)
- result |= (1 << (7 - pos));
+ result |= (1 << (n - 1 - pos));
return result;
}
-printf ("static const uint8_t ao_flip_bits[256] = {\n");
+void print_flip_bits(string name, int n) {
+ printf ("static const uint8_t %s_%d[%d] = {\n", name, n, 1 << n);
-for (int i = 0; i < 256; i++) {
- printf (" 0x%02x,", flip_bits(i));
- if ((i & 0xf) == 0xf)
- printf("\n");
+ for (int i = 0; i < 1 << n; i++) {
+ printf (" 0x%02x,", flip_bits(i, n));
+ if ((i & 0xf) == 0xf)
+ printf("\n");
+ }
+ printf("};\n");
}
-printf("};\n");
+
+print_flip_bits("ao_flip_bits", 8);
+print_flip_bits("ao_flip_bits", 2);