lz讲的好乱,我解释一下:大家会发现,所有991cnx的变量都是在4x,而且在内存中的顺序和字符表顺序一致,其中除了ans和preans没法发赋值外都可以赋值,m的实数部分从D31A处开始储存(虚数从D612),一个变量占用10个字节,由此可以推出preans存在d37e,而再下一个4b字符其实是有些计算器版本里面的变量z,紧接着就是历史记录存在的空间 991cnx里面变量(普通的数字,根式分式有其他方法)储存的格式为: 先转换为科学记数法x.xxxxxxxxxxxxxx x10 yy,然后存为0xxxxxxxxxxxxxxxaazz,一共十个字节,其中(若指数大于0,aa为yy(若变量大于0,zz为01),(若变量小于0,zz为06))(若指数小于0,aa为100-yy(若变量大于0,zz为00),(若变量小于0,zz为05)) 历史记录储存格式为(一般的!不包括牛顿解方程等): 从d392开始,一条历史记录的格式为{类型(3byte),计算结果(10byte),输入区的内容,0x23(:)},然后就一条条的存在上一条后面直到存满 以基础的30不可刷字符刷取办法分析: 首先弄出lbf转换器 然后打出 1234567:D:<4D>=A:<4E>=B:<4F>=C CALC = = = = = 在执行到D:的时候历史记录储存如下 aa aa aa bb bb bb bb bb bb bb bb bb bb 31 fe 23 aa aa aa bb bb bb bb bb bb bb bb bb bb 31 32 33 34 35 35 37 23 0x xx xx xx xx xx xx xx xx yy 45 23 从历史记录开始到0x xx...... 23刚刚好40字节,前面的13个字节的计算结果我们不感兴趣,所以从<4d>的第4个字节开始赋值,连续赋值3个变量并和后面的历史记录连起来,刚刚好刷30个字符