It is fairly simple to store all rational numbers in a binary format (not base 2) (a language composed of only 1s and 0s, no . marking) by simply storing one integer, a seperator, and another integer. One to indicate numerator and one to indicate denominator.
However I don't know of a way to store the irrationals. Is this proven to be impossible by cantor's uncountability proof and a bijection from all binary numbers to the all rational numbers?
Pardon any mistakes, can't say I am trained in the field.
Nice statement and I agree that your proof is valid. I'll flesh it out a little bit.
I'll denote that language you defined above as $\{0, 1\}^*$. This language must have a countable number of elements since it is the countable union of finite sets.
Now suppose every real number can be encoded uniquely as an element of this language. That means we have an injection $E : \mathbb{R} \to \{0, 1\}^*$. This is a contradiction because $\mathbb{R}$ is uncountable, but $\{0, 1\}^*$ is countable.