计算算术 - 一个8位数需要多少位比特?

3
你需要多少字节(和多少位)来表示数字99999999? 我需要知道这个问题。我们有一个最简单的计算器,可以容纳8位数字,即从0到99999999(让我们忘记不考虑负数,除非你觉得在你的答案中包括它们更好)。
我们需要多少位/字节来存储从0到99999999范围内的值?
感谢您的帮助,请尽可能提供理论背景和任何计算。
非常感谢!
2个回答

4

因为有8个数字,每个数字可以有10个值(0、1、...、9),所以可表示的数字总数为10^8。为了在二进制中表示这么多数字,我们必须有一个数字N,使得仅将两个值(0、1)分配给每个位置,至少给出与十进制相同数量的可表示数字。也就是说,我们需要解决以下问题:

2^N >= 10^8

我们可以对两边取以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个数字。

0

简短的回答是27位,或者4个字节,可以覆盖32位。 更详细的回答是:您需要表示10^8个值,因此log2(10^8)大约为26.575424759。将此值向上取整,您会看到27。将27与8位一组进行向上取整,您就得到了32位,即4个字节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接