bugku 普通的二维码
2024-08-29 07:42:52
记录下对进制转换实现的重新思考。
扫描二维码扫到了一句垃圾话。
拖到winhex里面。
一开始以为是十进制直接转ascii,发现错误。
后来发现,最大数是7,八进制转换吧。
我是打算用python的libnum模块转换,所以我先把8进制转换为10进制,然后10进制转换为ascii。
贴出代码
import libnum
a='146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175'
a=int(a,8)
print(a)
转化后的十进制数是:
122904376305381298193412913733165208999270088458846253109387416074993504924322568636802010235499192855449942901373
print(libnum(n2s(a)))发现报错。
为什么会报错呢?我一开始纠结这里,但是后来发现根本不用纠结这个地方。
来看两种情况的进制转换
①十进制102108转化为text
你可以这么理解:这个得先转化为十六进制,然后十六进制每两个一组转化为ascii
②十进制 102 108转化为text
这个事实102-f, 108-l
可以看出来这两种结果是不一样的,题目也是这样的。
你仔细观察的话,你会发现这个貌似是第二种情况,每三位数一组,然后分别代表一个ascii。
如果你像我一上来直接把这一大长串数转化为10进制的话,就破坏了他的数值了。
总结下来就是,不能一上来就脚本转换,得观察数的特点,不过这个题目也不给数之间加空格,确实容易犯这种错误
最新文章
- CentOS6.4下基于Nginx搭建mp4/flv流媒体服务器
- 最全面的NSDateHelper 分享
- HealthKit框架
- ABAP之PINYING拼音
- iOS开发小技巧--利用苹果官方API播放视频(方法已经过时,了解一下)
- Toast添加动画
- mvc中HttpPost理解
- CF 191 div2
- Tkinter隐藏窗口再让他显示出来的例子
- 2017qq红包雨最强攻略,
- Linux c codeblock的使用(二):在工程中编译多个文件
- LeetCode 160 相交链表
- PostgreSQL主要优势
- vue获取地址栏传过来的参数VS原生js获取地址栏的参数
- 分布式 session
- PAT B1022 D进制的A+B (20 分)
- 第一模块第一章 review
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
- 模拟时钟(AnalogClock)
- leetCode题解之寻找一个数在有序数组中的范围Search for a Range