代码改变世界

十进制正整数与其二进制表示的位数之间的关系

2015-05-30 16:35  星星之火✨🔥  阅读(1274)  评论(0)    收藏  举报

在度量与数字特性相关的算法的输入规模时,计算机科学家常常倾向于度量数字n 的二进制表示中的比特数b:

    b = ⌊log2n⌋ + 1

这种度量常常使我们对所讨论算法的效率有一个更加清晰的概念。

下面我们来证明这个等式:

  不失一般性,设正整数n 的二进制表示中共有b 位,因此n 的最大值就是所有的位全部取1,即

                      MaxValue = 2^0 + 2^1 + ... + 2^(b-1) = 2^b - 1。

  最小值就是第b 位取1,其余位全部取0,此时MinValue = 2^(b-1)。

  因此,我们有 2^(b-1) ≤ n < 2^b。对等式两边以2 为底取对数,有b - 1 ≤ ⌊log2n⌋ < b,即:b = ⌊log2n⌋ + 1。命题得证。

 

 

 

 

(End_XPJIANG)