从二进制到十进制是否有任何限制(就像从十进制到二进制一样)?

时间:2011-07-05 12:47:47

标签: math language-agnostic floating-point

众所周知,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 必须具有哪些属性?)

1 个答案:

答案 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。