【问题标题】:Are there any limitations when going from binary to decimal (just as when going from decimal to binary)?从二进制到十进制有什么限制吗(就像从十进制到二进制一样)?
【发布时间】:2011-07-05 12:47:46
【问题描述】:

众所周知,not all decimal numbers can be represented in binary(位数有限)。

我想知道,所有(有限)二进制数都可以用(有限个)十进制数字表示吗?我怀疑是这样,因为二进制中的所有“原语”(“0.5”、“0.125”等)都可以用有限个十进制数字表示。

所以,我的问题如下:“兼容的基础更改”的特征是什么?即,对于“Base 2 → Base 10”适用但对于“Base 10 → Base 2”不适用的数学性质是什么?

(正式地说:NM 必须具有哪些属性,才能确保所有有限 Base-N 数都有对应的有限 Base-M 数?)

【问题讨论】:

  • +1 个写得很好的问题,解决了很多人都困惑的话题。

标签: math language-agnostic floating-point


【解决方案1】:

如果n是二进制分数,那么n = a / 2k sup> 用于整数 ak

这意味着 n = (a · 5k) / (2k · 5k) = (a · 5k) / 10k

所以每个二进制分数都是十进制分数。

在一般情况下,以N为底的每个分数也是以M为底的分数当且仅当N Mk 对于一些 k (或者,等效地,如果 N 的每个素数也是M 的质因数)。一个类似于我上面给出的 2 和 10 的论点处理“如果”方向。对于“仅当”方向,这里有一个草图证明供您填写:假设 1 / N = a / Mk,然后 Mk = a · N,因此 N 除以 Mk

所以二进制可以无损失地转换为十进制,因为 2 是 10 的因数,但十进制不能无损失地转换为二进制,因为 5 是 10 的因数,但不是 2 的因数。

【讨论】:

  • 我无法立即看到分数和有限数之间的关系。例如 1/3 不能用有限的十进制数字表示。
  • 只是术语:“二进制分数”表示“以二进制精确表示的分数”,“十进制分数”表示“以十进制精确表示的分数”。
  • 啊哈,考虑到这一点,我再次阅读了您的答案,答案很有意义。 :-)
  • 哈哈——草图证明隐藏的细节比我第一次阅读时想象的要多。 +1 优雅的光泽度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 2016-08-12
  • 2014-10-30
  • 2013-02-21
  • 2015-01-15
相关资源
最近更新 更多