记录下对进制转换实现的重新思考。
扫描二维码扫到了一句垃圾话。
拖到winhex里面。
我是打算用python的libnum模块转换,所以我先把8进制转换为10进制,然后10进制转换为ascii。
贴出代码
转化后的十进制数是:
122904376305381298193412913733165208999270088458846253109387416074993504924322568636802010235499192855449942901373
print(libnum(n2s(a)))发现报错。
为什么会报错呢?我一开始纠结这里,但是后来发现根本不用纠结这个地方。
来看两种情况的进制转换
你可以这么理解:这个得先转化为十六进制,然后十六进制每两个一组转化为ascii
这个事实102-f, 108-l
可以看出来这两种结果是不一样的,题目也是这样的。
你仔细观察的话,你会发现这个貌似是第二种情况,每三位数一组,然后分别代表一个ascii。
如果你像我一上来直接把这一大长串数转化为10进制的话,就破坏了他的数值了。
总结下来就是,不能一上来就脚本转换,得观察数的特点,不过这个题目也不给数之间加空格,确实容易犯这种错误