网站后台发了文章看不到,php企业网站论文,网页设计留言板怎么做,网站不备案怎么回事有这样一条需求#xff1a;计算某个文件中的数组每一行元素的最后一个参数#xff0c;异或输出。
因为元素比较多#xff0c;十几行#xff0c;通过人工去计算异或值非常困难。
而在线异或的计算器#xff0c;也需要人为输入这些数值#xff0c;每次计算一个最终结果需…有这样一条需求计算某个文件中的数组每一行元素的最后一个参数异或输出。
因为元素比较多十几行通过人工去计算异或值非常困难。
而在线异或的计算器也需要人为输入这些数值每次计算一个最终结果需要花费2-3分钟手动输入手酸。
于是想做一个异或工具实现这个功能。
异或工具
1.从文件读取每行找到最后一个参数
2.把这些参数进行异或
3.异或的结果以16进制输出到弹窗
import fnmatch
import os
from tkinter import messagebox
本异或工具功能计算文件里数组里面每行最后一个值的异或值
计算完所有的异或值之后就输出结果定义一个cal_XOR_value方法
找到文件里所有目标值
传入参数文件名
读取文件每行内容contents接收返回结果
对contents的值content切片取倒数第二个值转换为字符串
对该字符串切片匹配开头为0x的字符
取到了第一个值就把该值和初始值为0的变量result进行异或结果存入result里
下一次取到值就用该值和result异或直到所有值都计算完毕返回result
接收到返回结果之后追加到列表result_list中然后继续遍历下个文件
所有文件的异或值计算好之后弹窗输出def cal_XOR_value(file):#result用来存放异或结果一个数异或0等于它本身所以result初始值为0result0#打开传入的文件with open(file,moder)as f :#逐行读取该文件的内容(题目要求每行元素)contentsf.readlines()#遍历每行元素for content in contents:#以空格分割切片取倒数第二个值#根据文件的实际情况就是该值文件格式不会变所以我这里写死了value.join(content.split( )[-2:-1])#如果取到的值是0x开头的就把它转为int型与result异或if value[0:2]0x:#把0x开头的十六进制字符串转化为10进制valint(value,16)result^val#一个文件的所有值都异或完毕之后返回以16进制字符串形式的结果resultreturn hex(result)
#列表存放多个文件的结果1个文件1个结果
result_list[]
#找到当前目录所有.c结尾的文件
for root,dirs,files in os.walk(./):for file in files:file_nameos.path.join(root,file)if fnmatch.fnmatch(file_name,*.c):#调用计算异或的方法计算出当前文件的异或结果追加到result_list中result_list.append(cal_XOR_value(file_name))
#所有符合要求的文件都计算出异或值之后弹窗展示。
#其中英文字母都转换为大写此处为了方便查看我还在每个值的后面加了几个空格
messagebox.showinfo(title异或值输出,message[result.upper() for result in result_list])参考文件(有做过改动仅供参考)
#include cs.h#define cs asdfsf((section(fsfwfwge)))CS csa[] cs
{{ aaa, 0x0, 0x29, 0, 0x2AE590E7 },{ bbb, 0xA052A3E8, 0x0, sfa, 0x0 },{ ccc, 0xA00C2C00, 0x467000, sfa | sfw, 0x2CC653CC },{ ddd, 0x98A00000, 0x4000000,sfa | sfw, 0xB2EB30ED },{ eeeeee, 0xB6A00000, 0x4000000, sfa | sfw, 0xB2EB30ED },{ ffff, 0xD6A00000, 0x4000000, sfa | sfaw, 0xB2EB30ED },{ .gg, 0x0, 0x2A, 0, 0xC1CA9762 },{ h, 0x70111990, 0x18C0, sss | fsafa, 0x6DA15559 },{ iiii, 0xA0529C14, 0x2D8, fsew | fsdse, 0xCB4C253C },{ j, 0x0, 0x4831, 0, 0xEF0A5918 },{ kkkkkkkk, 0x0, 0xC8, 0, 0xCF02F9B4 },{ l, 0x0, 0x7BA8, 0, 0xDA630629 },{ pppp, 0x0, 0xF8D3, 0, 0xC3CD60A1 },{ qqqqq, 0xA0529EEC, 0x40, sfwef | fewfwef, 0xB7601B },{ rrrrrr, 0xA0539878, 0xB45B, fwefwef, 0xE7AB0B66 },{ sssssssss, 0xA052A3E8, 0x7E10, wfewefw, 0xC4D809E8 },{ t, 0xA05321F8, 0x3770, fwefwe, 0x524D9845 },{ uuu, 0xA0529F2C, 0x4BC, fwewfw | fefwe, 0x75DEC15A },{ vvvv, 0xA0535968, 0x3F10, fegfr, 0xBF053B26 },{ ww, 0xA0529C00, 0x13, rettt, 0x24A10D1C },{ xxxxxxxxxx, 0xA0082BB8, 0x40000, regwa, 0xE20EEA22 },{ yyyyyy, 0xA007A1E0, 0x89D8, grere, 0x5A1F84AA },{ zzzzzzzzz, 0x0, 0x1A8, 0, 0xBD310E5 },{ a1, 0x701118A8, 0xE4, grergers | gewrgr, 0xF0BEF674 },{ b1, 0x0, 0x1146F, 0, 0x7AAA5662 },{ c1111, 0x0, 0x15450, 0, 0xF70B0C94 },{ d22, 0xA0000000, 0x7A1E0, gergdr | gegss, 0xAD0AD88E },{ ffff233, 0x70110000, 0xF04, fweefgre | egwsdxw, 0x6C170AB3 },};unsigned int cszc sizeof(csa) / sizeof(cs);