First of all, none of those are binary numbers, so they won't fit in a uint16_t.
You probably meant:
uint16_t min = 0b1000000001;
Second, I'm not sure I understand what you mean.
Is bitSeqLen(0b10001) supposed to be 5?
What about bitSeqLen(0b101000)? 6, or 3?
Assuming the latter, you could do:
// Obscure and mysterious magic code!
#define bitSeqLen(x) ((sizeof(x)*8) - (__builtin_clz(x) + __builtin_ctz(x)))
(I think ... if this is homework, it would be very unwise to hand that in as a solution, unless you figure out and describe exactly how it works. But looking into it might offer some clues.)