2013-10-27 77 views
2

任何人都可以解釋我如何看到爲什麼數字在二進制形式:111是2^3 - 1? 我知道這個數是按1 * 2^0 + 1 * 2^1 + 1 * 2^2來計算的,但是我看不到如何從這裏到達2^3-1 ......看不見任何權力規則或東西..二進制到十進制轉換 - 公式解釋

回答

2

這是數2的一個獨特的特性,它是以前的功率之和等於1。

換句話說減去下一功率電平:

(1,2,3 ...)

2^n = 2^0 + 2^1 + 2^2 + ... + 2 ^(n-1)+1對於n中的(1,2,3 ...)

如果你需要證明,使用數學ical感應。

基數: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加到111:結果是1000

它遵循,因此,認爲:

 
111 + 1 = 1000 → 1000 - 1 = 111 

現在,100023,因此:

 
23 - 1 = 111 

當然,你可以說關於二進制數類似的東西與任何數1s

1

想想這樣,111是1小於1000(二進制8)。

0

000000001100102。取決於二進制數字右邊的位的位置,該位等於2^(p - 1),其中p是該位置。

例如00101是右邊的第二位。 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 
0

對於底座B的通式如下:

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

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

乙^(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小數