This is a good point and feels like three kind of thing Conway would have written about.
One good way to find rational approximants is to look for large values in continued fractions. Looking at log_2(10) we get the continued fraction representation
[3;3,9,2,2,4,6,2,1,1,3,1,18...]
The 9 isn't particularly large, but if you truncate just before it you get
log_2(10) ~= 10/3
and hence
2^10 ~= 10^3.
If you keep going and cut just before the 18 you find that
2^325147 ~= 10^97879
This is correct to six places, as you can easily verify
$ python3 -c print(str(2**325147)[:8])
10000003
No doubt manufacturers will use this to further swindle us as soon as we have storage that requires 40 KiB pointers.
One good way to find rational approximants is to look for large values in continued fractions. Looking at log_2(10) we get the continued fraction representation
The 9 isn't particularly large, but if you truncate just before it you get and hence If you keep going and cut just before the 18 you find that This is correct to six places, as you can easily verify No doubt manufacturers will use this to further swindle us as soon as we have storage that requires 40 KiB pointers.