二进制到十进制转换 - 公式说明

时间:2013-10-27 19:34:59

标签: python python-3.x binary numbers decimal

谁能解释我怎么解释为什么二进制形式的数字:111是2 ^ 3 - 1? 我知道这个数字的计算是1 * 2 ^ 0 + 1 * 2 ^ 1 + 1 * 2 ^ 2但是我看不出怎么从这里到2 ^ 3-1 ...看不到任何权力规则或其他东西..

5 个答案:

答案 0 :(得分:2)

这是2号的唯一属性,它的前一个幂的总和等于下一个功率等级减1。

换句话说:

  

2 ^ n = 2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... + 2 ^(n-1)+1 for n in(1,2,3 ...)

如果您需要证明,请使用数学归纳法。

基地:n=1; 2^1=2=2^0+1=1+1

假设n=k符合2^n=2^0+2^1+...+2^(n-1)+1属性

对于n = k + 1,你有2^n=(2^k)*(2^1)然后应用假设,你有

产生

2^n=(2^0+2^1+...+2^(n-2)+1)*2

2^n=(2^1+2^2+...+2^(n-1)+2)=1+2^0+2^1+...+2^(n-1)总结了我们的证据。

答案 1 :(得分:1)

1添加到111:结果为1000

因此,接下来是:

111 + 1 = 1000 → 1000 - 1 = 111

现在,100023,因此:

23 - 1 = 111

当然,你可以用任何数量的1来说明二进制数的类似内容

答案 2 :(得分:1)

可以这样想,111是1小于1000(二进制8)。

答案 3 :(得分:0)

000000001100102。根据二进制数右侧位的位置,该位等于2^(p - 1),其中p是该位置。

例如0010 1是右边的第二位。 2^(2 - 1) = 2^1 = 2

1112^3 - 1,因为10002^3111 1000一个单位,因此是2^3 - 1

顺便说一句,在python中,您可以使用0b作为二进制值的标记。

x = 0b111
y = 2 ** 3 - 1
print(x == y)
>> True

int()函数可用于转换二进制字符串

x = int("111", 2) # Base 2
y = 7
print(x == y)
>> True

答案 4 :(得分:0)

基础B的通式如下:

(B ^ N + ... + B ^ 1 + B ^ 0)*(B-1)=

(B ^(N + 1)+ ... + B ^ 2 + B ^ 1) - (B ^ N + ... + B ^ 1 + B ^ 0)=

B ^(N + 1) - B ^ 0 = B ^(N + 1)-1

示例:

  1. B = 2且N = 3给出2 ^ 4-1 = 1111二进制
  2. B = 10且N = 3给出10 ^ 3 - 1 = 999十进制