作者sluggard (~Halcyon Days~)
看板Math
標題[其他] 二進位與二的次方
時間Mon Jun 10 01:12:02 2024
今天看到一個解題的影片提到要快速知道一個數是否為2的次方數
可以把那個數轉為二進位,
然後在看轉成二進位後,是不是只有一個1
例如:
2^0 = 1 ==> 00001
2^1 = 2 ==> 00010
2^2 = 4 ==> 00100
2^3 = 8 ==> 01000
2^4 = 16 ==> 10000
....
轉成二進位時都只有一個1,
所以如果有一個數,要確認是否為二的次方數
就可以轉成二進位,然後看看是否只有一個1來做判斷,
感覺非常神奇,但我想請問這是怎麼推導出來的?
如果要證明,是要用數學歸納法?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.126.22 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Math/M.1717953124.A.242.html
1F:推 cuteSquirrel: 二進位表達式的基本原理 06/10 01:13
2F:→ Ricestone : 那是解程式題吧? 你知道手算怎麼轉成二進制嗎? 06/10 01:22
3F:→ Ricestone : 當然如果你想要的話,還是可以用數學歸納法啦 06/10 01:27
4F:→ sluggard : 謝謝回覆!手算二進位就是把該數一直除以2,然後看 06/10 01:58
5F:→ sluggard : 餘數,只是餘數是從相反(下到上)的順序... 06/10 01:58
6F:→ sluggard : 但想不出怎麼怎麼會發現這個規律的... 06/10 01:59
7F:推 cuteSquirrel: 基本性質 06/10 02:04
8F:推 ERT312 : 2的平方數不是4嗎? 06/10 02:04
9F:→ cuteSquirrel: 你也可以說power of 10 在十進位都只會有一個1出現 06/10 02:04
10F:→ cuteSquirrel: 1, 10, 100, 1000, 10000, ..., 10^i 06/10 02:04
11F:→ Ricestone : 如果你是2的冪,說是2^k好了,先看k>1的狀況,這情 06/10 02:17
12F:→ Ricestone : 況下除以2的話商是2^(k-1),餘數是0對吧? 06/10 02:17
13F:→ Ricestone : 那在除一次也一樣,且會直到(k-k)=0的時候,這時除 06/10 02:18
14F:→ Ricestone : 以2商就是1,餘數也是1,然後就沒了 06/10 02:19
15F:→ Ricestone : 所以前面每一個二進制表示都會是0,只剩最高位是1 06/10 02:20
16F:→ Ricestone : 當然這解釋只是單純的機械式操作,而本質就是如同下 06/10 02:22
17F:→ Ricestone : 一篇文章所寫的進位制。或許你也可能是卡在任何進位 06/10 02:23
18F:→ Ricestone : 制的表示法其實是唯一的上(有定義好的話) 06/10 02:24
19F:→ Ricestone : 欸不對,最後是餘數還是0,只是商為1就停住了 06/10 02:28
20F:→ sluggard : 真的謝謝每一位的回覆與解釋!我的確寫錯了,不是二 06/10 15:03
21F:→ sluggard : 的平方,而是二的次方,表達錯誤!謝謝指正! 06/10 15:03
※ 編輯: sluggard (36.236.126.22 臺灣), 06/10/2024 15:17:21
※ 編輯: sluggard (36.236.126.22 臺灣), 06/10/2024 15:18:07
22F:→ mantour : 你覺得10進位下10^n 就是1後面加n個0需要證明嗎 ? 06/10 15:49
23F:→ mantour : 二進制下一個數右邊加一個0就是乘以2 就跟10進制下 06/10 15:54
24F:→ mantour : 右邊加一個0就是乘以10一樣 06/10 15:54
25F:→ mantour : 2^n 就是一直乘以二所以就是1後面一直加0 06/10 15:55
26F:→ mantour : K進制下向左平移一位就是*K, 向右就是除以K 06/10 16:39
27F:推 cuylerLin : 關鍵字查: bit operations 06/10 19:32