计算算术 - 8 位数字需要多少位

Computational arithmetic - how many bits exactly for 8 digit number needed

提问人:Nick 提问时间:1/27/2020 更新时间:1/27/2020 访问量:989

问:

您需要多少个字节(以及多少位)来表示数字 99999999 ? 我需要知道这一点:我们有一个计算器,最简单的计算器,最多可容纳 8 位数字,即从 0 到 99999999(让我们忘记否定,除非您觉得可以包含在答案中)。

我们需要多少位/字节来存储从 0 到 99999999 的值?

感谢您的帮助,如果可以的话,请提供理论背景和任何计算。 谢谢!

数字 字节 计算理论

评论


答:

0赞 user3683792 1/27/2020 #1

简短的回答是 27 位,或涵盖 32 位的 4 个字节。 更长的答案是:你必须表示 10^8 个值,所以 log2(10^8) 大约是 26.575424759。将此值除去,您会看到 27。Ceil 27 具有 8 位组,您有 32 位,4 个字节

4赞 Patrick87 1/27/2020 #2

因为有 8 位数字,每个数字可以有 10 个值(0、1、...、9),所以可表示的数字总数为 10^8。为了用二进制表示这么多数字,我们必须有数字 N,这样,只需为每个位置分配两个值(0、1)中的一个,就可以得到至少与十进制一样多的可表示数字。也就是说,我们必须解决

2^N >= 10^8

我们可以取两边的 base-2 对数来得到

N >= log_2(10^8) = 8 * log_2(10)

在这一点上,希望你有一个计算器可以方便地计算log_2(10)。请注意,如果您的计算器默认以 10 为底进行对数计算,则等于 log_10(10)/ log_10(2) = 1/log_10(2)。答案是:

N >= ~26.58

满足此条件的 N 的最小整数值是 27。因此,需要 27 位数字。