看板 Math 關於我們 聯絡資訊
今天看到一個解題的影片提到要快速知道一個數是否為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://www.ptt.cc/bbs/Math/M.1717953124.A.242.html
cuteSquirrel: 二進位表達式的基本原理 06/10 01:13
Ricestone : 那是解程式題吧? 你知道手算怎麼轉成二進制嗎? 06/10 01:22
Ricestone : 當然如果你想要的話,還是可以用數學歸納法啦 06/10 01:27
sluggard : 謝謝回覆!手算二進位就是把該數一直除以2,然後看 06/10 01:58
sluggard : 餘數,只是餘數是從相反(下到上)的順序... 06/10 01:58
sluggard : 但想不出怎麼怎麼會發現這個規律的... 06/10 01:59
cuteSquirrel: 基本性質 06/10 02:04
ERT312 : 2的平方數不是4嗎? 06/10 02:04
cuteSquirrel: 你也可以說power of 10 在十進位都只會有一個1出現 06/10 02:04
cuteSquirrel: 1, 10, 100, 1000, 10000, ..., 10^i 06/10 02:04
Ricestone : 如果你是2的冪,說是2^k好了,先看k>1的狀況,這情 06/10 02:17
Ricestone : 況下除以2的話商是2^(k-1),餘數是0對吧? 06/10 02:17
Ricestone : 那在除一次也一樣,且會直到(k-k)=0的時候,這時除 06/10 02:18
Ricestone : 以2商就是1,餘數也是1,然後就沒了 06/10 02:19
Ricestone : 所以前面每一個二進制表示都會是0,只剩最高位是1 06/10 02:20
Ricestone : 當然這解釋只是單純的機械式操作,而本質就是如同下 06/10 02:22
Ricestone : 一篇文章所寫的進位制。或許你也可能是卡在任何進位 06/10 02:23
Ricestone : 制的表示法其實是唯一的上(有定義好的話) 06/10 02:24
Ricestone : 欸不對,最後是餘數還是0,只是商為1就停住了 06/10 02:28
sluggard : 真的謝謝每一位的回覆與解釋!我的確寫錯了,不是二 06/10 15:03
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
mantour : 你覺得10進位下10^n 就是1後面加n個0需要證明嗎 ? 06/10 15:49
mantour : 二進制下一個數右邊加一個0就是乘以2 就跟10進制下 06/10 15:54
mantour : 右邊加一個0就是乘以10一樣 06/10 15:54
mantour : 2^n 就是一直乘以二所以就是1後面一直加0 06/10 15:55
mantour : K進制下向左平移一位就是*K, 向右就是除以K 06/10 16:39
cuylerLin : 關鍵字查: bit operations 06/10 19:32