i.e. UInt8, if you need negative numbers too, then Int9 (a sign always adds one bit, so maybe you can get away with 127 max?), which isn’t available, then next one Int16. In practice this usually mean Int32 is the happy medium if you want to save space, or just go with the default Int64 (least likely to overflow, not a huge concern, mostly for power, for any of them).
I’m mulling over making a 21 or 20-bit Int, as a better happy medium (strictly 3 such encoded into one Int64), since often a reasonable max. (my type would get you a Float64 for power, since I feel not doing that is a design flaw of Julia):