以二的幂表示数字[关闭]

Posted

技术标签:

【中文标题】以二的幂表示数字[关闭]【英文标题】:express numbers in powers of two [closed] 【发布时间】:2021-09-15 15:30:34 【问题描述】:

如果我们有 2 Tb 的数据,如何用 2 的 x 次方表示? (到最近的)

答案必须是十进制数字。我觉得它是 40.99 但结果是错误的。我想知道如何解决这个问题。谢谢!

【问题讨论】:

如果 10 ** d = 2 ** b 则 b = d / log10(2) = d / 0.30103。例如 10 ** 3 ≈ 2 ** 10。 oeis.org/A000079 【参考方案1】:

Metric System 前缀都代表 10 的幂,“tera”表示 1012。所以 2 TB 是 2,000,000,000,000 字节,而不是 21,990 亿字节。

有binary prefixes 表示二的幂。这些将公制前缀的第二个音节替换为“bi”,表示“二进制”。一个 tebibyte 是 10244 = 240 字节,两个 tebibyte 是 241 字节 = 2,199,023,255,552 字节。

给定一个数x,你可以计算它是2的幂为log2x,也就是以2为底x 的对数。如果您没有以 2 为底的对数函数,则可以将其计算为 log x / log 2,其中“log”是使用任何底数的对数函数。 (除以 log 2 有效地调整了基数。)

log2 2,199,000,000,000 约为 40.9999847,接近 41。因此,如果字节数接近 21,990 亿字节,则接近 241 字节。

【讨论】:

以上是关于以二的幂表示数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java:作为 HashMap 大小的“素数”数字还是“二的幂”?

题解二的幂次方

二的幂次方(递归)

日常学习搜索/递归codevs2802 二的幂次方题解

leetcode326.三的幂(342.四的幂/231.二的幂)

信息的表示和处理