谁能解释我怎么解释为什么二进制形式的数字:111是2 ^ 3 - 1? 我知道这个数字的计算是1 * 2 ^ 0 + 1 * 2 ^ 1 + 1 * 2 ^ 2但是我看不出怎么从这里到2 ^ 3-1 ...看不到任何权力规则或其他东西..
答案 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
现在,1000
为23
,因此:
23 - 1 = 111
当然,你可以用任何数量的1来说明二进制数的类似内容
答案 2 :(得分:1)
可以这样想,111是1小于1000(二进制8)。
答案 3 :(得分:0)
0000
为0
,0001
为1
,0010
为2
。根据二进制数右侧位的位置,该位等于2^(p - 1)
,其中p
是该位置。
例如0010
1
是右边的第二位。 2^(2 - 1) = 2^1 = 2
。
111
为2^3 - 1
,因为1000
为2^3
且111
比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
示例: