2

谁能解释一下为什么二进制形式的数字: 111 是 2^3 - 1 ?我知道这个数字是由 1*2^0 + 1*2^1 + 1*2^2 计算的,但我看不到如何从这里到 2^3-1 ...看不到任何权力规则什么的..

4

5 回答 5

2

数字 2 的一个独特属性是它之前的功率之和等于下一个功率级别减去 1。

换句话说:

2^n=2^0+2^1+2^2+...+2^(n-1)+1 对于 (1,2,3...) 中的 n

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

基地: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)这结束了我们的证明。

于 2013-10-27T19:38:23.267 回答
1

添加1111:结果是1000

因此,可以得出以下结论:

111 + 1 = 1000 → 1000 - 1 = 111

现在,1000是,因此:23

2 3 - 1 = 111

当然,你可以对任意数量为 1 的二进制数说类似的话

于 2013-10-27T19:38:38.867 回答
1

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

于 2013-10-27T19:38:42.080 回答
0

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

例如00101从右边数第二位。2^(2 - 1) = 2^1 = 2.

1112^3 - 1因为1000is2^3111is少一个单位1000,所以 being 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
于 2013-10-27T19:41:30.760 回答
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 十进制
于 2013-10-27T19:57:42.520 回答