作者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/cn.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