众所周知,not all decimal numbers can be represented in binary(数字位数有限)。
我想知道,是否可以使用(有限数量的)十进制数字表示所有(有限)二进制数?我怀疑是这样,因为二进制(“0.5”,“0.125”等)中的所有“基元”都可以用有限数量的十进制数字表示。
所以,我的问题如下:“兼容的基础变化”的特征是什么?即,“ Base 2→Base 10 ”的数学属性是什么,但不适用于“ Base 10→Base 2 ”?
(正式提出:为了确保所有有限的Base-N数都具有相应的有限Base-M数, N 和 M 必须具有哪些属性?)
答案 0 :(得分:14)
如果 n 是二进制分数,那么 n = a / 2 k for integers a 和 k 。
这意味着 n =( a ·5 k )/(2 k ·5 k )=( a ·5 k )/ 10 k
所以每个二进制分数都是小数。
在一般情况下,当 N 除以时,基于 N 的每个分数也是 M 的分数。 M k 对于某些 k (或者,等效地,如果 N 的每个素因子也是 M 的主要因素。类似于我上面给出的2和10的参数处理“if”方向。对于“只有if”方向,这里有一个草图证明供您填写:假设1 / N = a / M k ,然后 M k = a · N ,因此 N 除以 M k 。
所以二进制可以转换为十进制而不会丢失,因为2是因子10,但十进制不能转换为二进制而没有丢失,因为5是因子10而不是因子2。