引言
昨天的题目学习到进位制以及「 ASCII code <-> 字元」转换,
关於 Python 中的进位制前缀,可以简单列出下表:
进位制 | 前缀 |
---|---|
二进制 | 0b (零+b) |
八进制 | 0o (零+小写英文字母o) |
十进制 | 无 |
十六进制 | 0x (零+小写英文字母x) |
例:
一个八进位数字 4562
表示成: 0o4562
一个十六进位数字 ff75
表示成: 0xff75
顺带一提这个包含字母的前缀+数字在 Python 中视为数字喔,
如果你试着
print(0x34)
程序会印出 52
,可见 Python 事实上会将其转成十进位数。
Python 中处理 ASCII code 与字元转换的方式刚好就两个函数:
General Skills / Warmed Up
这题马上就用到进位制了,题目要求16进位转10进位,
所以写一个 python 档,用 int() 来转换:
# base.py
print(int('0x3d', base=16))
int() 转换出来的必定是十进位整数。
这里写法很多种,
因後面已指定 base 是16进位, 0x
就没有必要:
print(int('3d', base=16))
还有这种,
base=0 表示自动判断,因为前面有 0x
就能得知是16进位:
print(int('0x3d', base=0))
int() 可填入数字或字串,取决於用途,
- 如果是用来小数转整数,填入数字,如:
int(3.14)
;- 如果是用来进制转换 (必转成10进位) ,有指定 base 的话 (包含 base=0) ,
则需填字串,如:int('0b101', base=2)
,
但如果不填入 base 则需填数字,如:int(0b101)
。
执行:
$ python base.py
61
将 61 用 flag 格式包住:
picoCTF{61}
<<: [机派X] Day 15 - 把你扳直!来校正飞行控制器吧!
>>: Day27 过不去的槛就先绕过它 - LINE Notification
上一次介绍完了介面,今天就要来说说实作的部分了,从这里开始我要采取一种“小步快跑”的方式,原本 Ed...
现在我们会使用基本的伪类选择器做效果了,但看到变化过程一闪而过、冷冰冰的,想增添更多渐变效果,让动...
在 2000 年代初期,内部稽核团队的典型工作重点是完成对特定财务和运营领域的传统周期性稽核——这一...
基於讯息传递的一致性协定,只能保证资料的「最终一致性」,都无法处理「拜占庭将军问题(Byzantin...
【前言】 我的习惯是先在 Youtube 看完落落长的影片,然後才去 Coursera 看看有什麽...