It might be better not to consider "bit" to be a type at all, and come up with another way of indicating that the size is in bits. Perhaps
'i4' # 4-byte signed int 'i4b' # 4-bit signed int 'u4' # 4-byte unsigned int 'u4b' # 4-bit unsigned int
I like this. Very nice. I think that's the right way to look at it.
I remark that 'ib4' and 'ub4' make for marginally easier parsing and less danger of ambiguity.