I've been looking at expressing numbers in radix-r notation, for |r|=1, e.g., r=exp(i)=e^i. Real r, |r|=1 is too boring, so I looked at complex r, |r|=1. r=exp(i)=e^i is "representative" of this class, and is easy to deal with in a computer algebra system. We first notice that "most significant bit" and "least significant bit" have no meaning, because |r^n|=1 for all real n. We're obviously not in Kansas, anymore, Toto! Zero = "0", as usual. One = "1", as usual. Since r^k+r^(-k) = 2*cos(k), we can represent real numbers in the range [-2,2] to any degree of accuracy we wish with only 2 "1" bits using an appropriate k. Every other real number outside this range can be expressed (very inefficiently) using a "greedy" algorithm that subtracts 2*cos(k) for various k's. "Inefficient" here means that expressing n takes O(n) 1 bits, and most likely O(n) bits in total. I also plotted all of the complex numbers I could construct using m bits on both sides of 1 -- i.e., binary numbers from 2^(-m) up to 2^m. These form pretty & mostly symmetrical patterns with blotches that eventually merge as m grows in size. (I don't have any way to show you these plots.)