提问人:Nick 提问时间:1/27/2020 更新时间:1/27/2020 访问量:989
计算算术 - 8 位数字需要多少位
Computational arithmetic - how many bits exactly for 8 digit number needed
问:
您需要多少个字节(以及多少位)来表示数字 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 位数字。
评论