当前位置: 首页 > news >正文

用python实现一个异或计算器

有这样一条需求:计算某个文件中的数组每一行元素的最后一个参数,异或输出。

因为元素比较多,十几行,通过人工去计算异或值非常困难。

而在线异或的计算器,也需要人为输入这些数值,每次计算一个最终结果需要花费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初始值为0result=0#打开传入的文件with open(file,mode="r")as f :#逐行读取该文件的内容(题目要求每行元素)contents=f.readlines()#遍历每行元素for content in contents:#以空格分割切片,取倒数第二个值#根据文件的实际情况就是该值,文件格式不会变,所以我这里写死了value="".join(content.split(" ")[-2:-1])#如果取到的值是0x开头的,就把它转为int型,与result异或if value[0:2]=="0x":#把0x开头的十六进制字符串转化为10进制val=int(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_name=os.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);

相关文章:

用python实现一个异或计算器

有这样一条需求&#xff1a;计算某个文件中的数组每一行元素的最后一个参数&#xff0c;异或输出。 因为元素比较多&#xff0c;十几行&#xff0c;通过人工去计算异或值非常困难。 而在线异或的计算器&#xff0c;也需要人为输入这些数值&#xff0c;每次计算一个最终结果需…...

Sketch打不开AI文件?转换方法在这里

1、对比设计软件 Sketch 与 AI 软件功能 Sketch 与 Illustrator 都是行业内优秀的矢量图形设计软件&#xff0c;各有千秋。Sketch 从 2010 年面世&#xff0c;专注 APP 界面设计&#xff0c;深受初学者与专业人士喜爱。Illustrator 拥有更悠久的历史&#xff0c;是处理复杂图标…...

小游戏扫雷实现教学(详解)

目录 【前言】 一、模块化程序设计&#xff08;多文件编程&#xff09;介绍 1.概述 2.传统编程的方式 3.模块化程序设计的方法 二、扫雷代码设计思路 三、扫雷代码设计 1.创建菜单函数 2.实现9x9扫雷 3.初始化棋盘 4.打印棋盘 5.随机布置雷的位置 6.排查雷的信息 7.回…...

04 mysql innodb record

前言 最近看到了 何登成 大佬的 "深入MySQL源码 -- Step By Step" 的 pdf 呵呵 似乎是找到了一些 方向 之前对于 mysql 方面的东西, 更多的仅仅是简单的使用[业务中的各种增删改查], 以及一些面试题的背诵 这里会参照 MySQL Internals Manual 来大致的看一下 i…...

Centos7安装Docker

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…...

Vue中如何更好地封装组件?

子组件接受父组件传递的事件 1.子组件使用事件名"$emit(父组件中传递的事件名,想给父组件传递的参数(可选))" click"$emit(click)" 2.子组件使用 v-on"$listeners" 父组件&#xff1a; <template><div id"app"><myCo…...

C语言的链表的相关操作

本变博客源于自己想复习一下C语言&#xff0c;所以便自己动手复习了一下链表的相关操作。做个人记录使用。 main.c #include <stdio.h> #include "list.h"int main() {student *a;printf("hello world\n") ;printf("----初始化列表----------\…...

Python3中typing模块

Python类型注解是Python 3.5版本之后引入的新特性&#xff0c;它可以让开发者在函数、变量等声明时为其指定类型。typing模型能够声明类型&#xff0c;防止运行时出现参数和返回值类型不符合的问题。 ### 1. 基本类型注解 def hello(name: str) -> str:return (Hello, na…...

C语言自动抓取淘宝商品详情网页数据,实现轻松高效爬虫

你是否曾经遇到过需要大量获取网页上的数据&#xff0c;但手动复制粘贴又太过费时费力&#xff1f;那么这篇文章就是为你而写。今天我们将会详细讨论如何使用C语言实现自动抓取网页上的数据。本文将会从以下8个方面进行逐步分析讨论。 1. HTTP协议的基本原理 在开始之前&…...

数据结构---跳表

目录标题 为什么会有跳表跳表的原理跳表的模拟实现准备工作find函数insert函数erase函数 测试效率比较 为什么会有跳表 在前面的学习过程中我们学习过链表这个容器&#xff0c;这个容器在头部和尾部插入数据的时间复杂度为O(1)&#xff0c;但是该容器存在一个缺陷就是不管数据…...

为什么Tomcat的NIO在读取body时要模拟阻塞?

文章首发地址 Tomcat的NIO完全可以以非阻塞方式处理IO&#xff0c;为什么在读取body部分时要模拟阻塞呢&#xff1f;在Tomcat的NIO读取HTTP请求时&#xff0c;为了保证请求的正确性和可靠性&#xff0c;需要模拟阻塞模式&#xff0c;这是因为servlet规范里定义了ServletInputSt…...

26 | 谷歌应用APP数据分析

基于kaggle公开数据集,对谷歌应用市场的APP情况进行数据探索和分析。 from kaggle: https://www.kaggle.com/lava18/google-play-store-apps 分析思路: 0、数据准备 1、数据概览 2、种类对Rating的影响 3、定价策略 4、因素相关性分析 5、用户评价 6、总结 0、数据准备 (…...

BFS 五香豆腐

题目描述 经过谢老师n次的教导&#xff0c;dfc终于觉悟了——过于腐败是不对的。但是dfc自身却无法改变自己&#xff0c;于是他找到了你&#xff0c;请求你的帮助。 dfc的内心可以看成是5*5个分区组成&#xff0c;每个分区都可以决定的的去向&#xff0c;0表示继续爱好腐败&…...

opencv实战项目 手势识别-手势控制键盘

手势识别是一种人机交互技术&#xff0c;通过识别人的手势动作&#xff0c;从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪&#xff08;定位手部关键点&#xff09; 2.opencv实战项目 实现手势跟踪并返回位置信息&#xff08;封装调用&am…...

1.作用域

1.1局部作用域 局部作用域分为函数作用域和块作用域。 1.函数作用域: 在函数内部声明的变量只能在函数内部被访问&#xff0c;外部无法直接访问。 总结&#xff1a; (1)函数内部声明的变量&#xff0c;在函数外部无法被访问 (2)函数的参数也是函数内部的局部变量 (3)不同函数…...

黑马B站八股文学习笔记

视频地址&#xff1a;https://www.yuque.com/linxun-bpyj0/linxun/vy91es9lyg7kbfnr 大纲 基础篇 基础篇要点&#xff1a;算法、数据结构、基础设计模式 1. 二分查找 要求 能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法 算法描述 前提&a…...

前端常用的上传下载文件的几种方式,直接上传、下载文件,读取.xlsx文件数据,导出.xlsx数据

一、通过调用接口下载文件 const onExport async () > {try {let res await axios.request({method: POST,url: 请求地址,responseType: blob,params: { data: null },headers: { Authorization: Bearer UserModule.token },//看看请求是否需要token});let reader new…...

FPGA应用学习笔记--时钟域的控制 亚稳态的解决

时钟域就是同一个时钟的区域&#xff0c;体现在laways语句边缘触发语句中&#xff0c;设计规模增大就会导致时钟不同步&#xff0c;有时差&#xff0c;就要设计多时钟域。 会经过与门的延时产生的新时钟域&#xff0c;这种其实不推荐使用&#xff0c;但在ascl里面很常见 在处理…...

AirServer是什么软件,手机屏幕投屏电脑神器

什么是 AirServer&#xff1f; AirServer 是适用于 Mac 和 PC 的先进的屏幕镜像接收器。 它允许您接收 AirPlay 和 Google Cast 流&#xff0c;类似于 Apple TV 或 Chromecast 设备。AirServer 可以将一个简单的大屏幕或投影仪变成一个通用的屏幕镜像接收器 &#xff0c;是一款…...

如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网

开启 AT 固件中的 Webserver 指令和 FS 指令支持 乐鑫官网发布的默认通用 AT 固件不支持 webserver 配网功能&#xff0c; 需要用户自己搭建 esp-at 环境&#xff0c;并在 sdkconfig 中开启 webserver AT 指令 和 FS 指令的支持&#xff0c; 如下图所示&#xff1a; 测试 AT 固…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为&#xff1a; f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法&#xff0c;得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...