#include #include int main(){ /* Get all 20 bit values with 10 bit set; * based on https://graphics.stanford.edu/~seander/bithacks.html#NextBitPermutation */ uint32_t first = 0x3FF; // 10 binary ones uint32_t v = first; while(v < (first << 10)){ printf("0x%05X, ", v); uint32_t t = (v | (v - 1)) + 1; v = t | ((((t & -t) / (v & -v)) >> 1) - 1); } }