谁能解释一下为什么二进制形式的数字: 111 是 2^3 - 1 ?我知道这个数字是由 1*2^0 + 1*2^1 + 1*2^2 计算的,但我看不到如何从这里到 2^3-1 ...看不到任何权力规则什么的..
5 回答
数字 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)
这结束了我们的证明。
添加1
到111
:结果是1000
。
因此,可以得出以下结论:
111 + 1 = 1000 → 1000 - 1 = 111
现在,1000
是,因此:23
2 3 - 1 = 111
当然,你可以对任意数量为 1 的二进制数说类似的话
可以这样想,111 比 1000 小 1(二进制为 8)。
0000
是0
,0001
是1
,0010
是2
。根据二进制数右侧的位的位置,该位等于该2^(p - 1)
位置p
的位置。
例如0010
,1
从右边数第二位。2^(2 - 1) = 2^1 = 2
.
111
是2^3 - 1
因为1000
is2^3
和111
is少一个单位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
碱基 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
例子:
- B=2 和 N=3 给出 2^4 - 1 = 1111 二进制
- B=10 和 N=3 给出 10^3 - 1 = 999 十进制