自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(269)
  • 资源 (92)
  • 收藏
  • 关注

原创 C#进行CAN【控制器局域网】通讯

CAN总线通信系统设计与实现 摘要: 本文介绍了一个基于C#的CAN总线通信系统设计方案,采用Peak公司的PCANBasic.NET接口实现硬件通信功能。系统具备以下主要功能:1) 支持多种波特率配置,实现CAN设备连接与管理;2) 提供消息收发功能,支持标准帧格式;3) 内置信号解析引擎,可自定义信号解析规则;4) 实时数据显示功能,包括网格视图和动态图表;5) 数据记录功能,支持CSV格式导出。系统采用多线程架构处理实时数据,通过MVC模式实现界面与逻辑分离,适用于汽车电子、工业控制等领域的CAN总线

2025-11-20 15:12:55 431

原创 ModbusRtu读取和写入一个寄存器示例

摘要: 本文介绍了基于C#实现的Modbus RTU串口通信工具开发。Modbus RTU是一种广泛应用于工业自动化的串行通信协议,采用主从架构,支持RS232/RS485接口。文章详细解析了读取(03H)和写入(06H)寄存器的报文格式,并提供了C#窗体应用程序的实现代码,包括串口配置、数据收发处理、CRC校验等功能。程序实现了基本的寄存器读写操作,采用事件驱动方式处理拆包粘包问题,具有报文显示和超时检测功能,可作为一个简易的Modbus RTU调试工具使用。

2025-11-15 11:25:00 300

原创 C#使用Chart图表控件实时显示运动坐标

摘要:本文介绍了使用C# Chart控件实时显示圆形运动轨迹的实现方法。通过将圆方程x²+y²=100等分为32个点,利用三角函数计算坐标点(radiuscosθ,radiussinθ)。程序包含窗体应用和辅助类CncGlobal,其中CncGlobal负责轨迹点计算和事件处理,窗体FormShowGlueTrack通过Chart控件展示轨迹,并提供开始/停止显示、清除轨迹等功能。关键点包括:设置Chart控件的等比例坐标轴、定时刷新机制(100ms间隔)和轨迹点限制(最多300个点)。测试按钮可验证圆轨迹

2025-11-11 11:57:09 461

原创 Python进阶(11-2):Python游戏编程-FlappyBird

《Flappy Bird游戏开发概述》摘要: Flappy Bird是一款由越南开发者阮哈东创作的经典休闲游戏,以其简单操作和高难度著称。游戏核心包含两个类:Bird类处理小鸟状态(飞行/跳跃/死亡)、位置和重力物理;PipeLine类负责管道障碍物。示例代码展示了游戏初始化、小鸟跳跃力学(速度递减)及基本画面渲染。游戏采用Pygame框架开发,运行帧率60FPS,包含背景图和小鸟三种状态(正常/红色/死亡)。开发重点在于物理模拟与碰撞检测的实现。

2025-10-24 19:57:31 165

原创 Python进阶(11):Python游戏编程

Python可通过Pygame模块进行游戏开发,该模块简化了底层处理,开发者可专注游戏逻辑实现。安装方法:在Pycharm终端输入"pip install pygame"。示例程序演示了基础功能:创建窗口、加载图片、实现小球反弹效果,包含事件处理、碰撞检测和画面更新等核心机制。程序通过pygame.init()初始化,设置时钟控制帧率,使用事件循环处理退出操作,并实现了简单的物理碰撞效果。该案例展示了Pygame在2D游戏开发中的基础应用流程。

2025-10-10 16:28:57 332

原创 Python进阶(10):GUI图形用户界面

本文介绍了Python中使用wxPython框架开发GUI图形用户界面的基础知识。主要内容包括:1)GUI程序三要素(输入、处理、输出);2)wxPython核心组件(App应用程序类、Frame框架类);3)常用控件(StaticText、Panel、TextCtrl、Button等)的使用方法;4)BoxSizer布局管理;5)事件绑定与处理机制。文中通过一个完整的Snake程序示例,演示了如何创建窗口、添加控件、处理按钮点击事件等基本操作,实现了一个包含文本框输入和按钮交互的简单GUI应用。该示例展示

2025-09-26 10:04:52 738

原创 Python进阶(9-2):Sqlite数据库操作

这里使用Sqlite数据库Sqlite数据库不是一个客户端-服务器结构的数据库引擎,而是一种嵌入式数据库,它的数据库就是一个文件,一般以.db作为后缀。sqlite最佳使用就是本地数据库,比如微信聊天记录就是存储在sqlite本地数据。sqlite不适用于数据较多的场景,也不适合于局域网之间进行交互的数据库。在Python中,内置了sqlite3,使用sqlite时,不需要安装任何模块,直接使用即可。在Mysql数据库操作上,仅做少许改动即可示例程序SqliteSnake.py

2025-09-21 16:18:57 204

原创 Python进阶(9):数据库操作

数据库操作数据库database用于将数据保存到磁盘上,为了便于程序保存和读取数据,而且能直接通过条件快速查询到指定的数据,就出现了数据库【Database】这种专门用于查询和存储的软件,以及一种通用的编程语言SQL。数据库连接对象(Connection Object)主要提供获取数据库游标【Cursor】对象和提交-回滚事务的方法,以及关闭数据库连接。游标对象:游标对象(Cursor Object)代表数据库中的游标,用于指示抓取数据库操作的上下文,主要提供执行sql语句,调用存储过程,获取查询结果

2025-09-21 15:40:55 890

原创 Python进阶(8):文件与目录操作

本文介绍了Python中文件与目录操作的基本方法。通过open()函数可创建文件对象进行读写操作,支持多种模式(r/w/a/b等)。使用with语句可自动管理文件资源。文件内容可通过read()、readline()等方法读取,write()方法写入。目录操作需借助os和os.path模块,包括创建/删除目录(mkdir/rmdir)、遍历目录(walk)、获取文件信息(stat)等。文章还演示了路径拼接、递归创建目录、文件重命名等实用功能,并提供了完整的示例代码展示如何获取文件属性信息(大小、创建时间等)

2025-09-21 09:49:53 900

原创 Python进阶(7):异常处理

Python异常处理机制简介:文章介绍了Python中常见的异常类型及处理方法,包括try-except语句捕获异常、try-except-else语句处理无异常情况、try-finally语句确保资源释放等。通过数学运算示例(如开平方、除法运算)演示了异常捕获过程,并展示了如何使用raise主动抛出异常,以及如何自定义异常信息。文章还提供了异常处理流程图,帮助理解程序执行流程。最后通过反正弦计算示例,说明了异常处理在实际编程中的应用。

2025-09-14 16:52:27 618

原创 祖冲之割圆术获取圆周率,获取第一个正N边行的周长除以直径的比率大于3.14

中国古代数学家通过割圆术计算圆周率,该方法利用圆内接正多边形逼近圆面积。魏晋数学家刘徽在《九章算术注》中系统提出这一方法,通过倍增边数使多边形周长接近圆周长。公式π=N×sin(π/N)展示了计算原理。现代C#程序验证发现,正57边形周长比首次超过3.14,正9820边形才超过3.1415926。祖冲之在南北朝时期将π精确到小数点后7位,展现了古代数学家的惊人计算能力和毅力。这一成就体现了中国古代数学的重要突破。

2025-09-10 09:42:23 585

原创 Python进阶(6-2):模块Modules

本文介绍了Python模块的基本概念和使用方法。重点讲解了内置标准模块shutil、os、re的功能,以及模块的__name__属性作用。通过math和random模块的实例演示,展示了如何计算三角函数、生成随机验证码。文章还对比了import和from..import两种导入方式的区别,并解释了顶级模块__name__值为"main"的特性。最后给出了一个生成8位随机验证码的完整示例代码,包含大小写字母和数字的随机组合。

2025-08-28 14:27:26 310

原创 Python进阶(6):模块Modules

Python模块是扩展名为.py的文件,类似于命名空间,用于组织代码、避免命名冲突并提高复用性。创建模块时需注意命名规范,通过import或from...import语句导入模块内容。包(Package)是包含__init__.py文件的目录,用于组织模块并解决模块名冲突问题。导入方式包括完整包名导入、from导入和直接导入定义。每个模块都有__name__变量,值为"main"时表示直接运行。示例展示了矩形和圆形计算模块的创建与使用,演示了模块化编程的优势。

2025-08-11 17:42:20 916

原创 C#获取图像指定像素位置的颜色

本文介绍了使用.NET Framework中System.Drawing.Bitmap类的GetPixel方法获取图像指定像素颜色值的技术方案。通过密封类Bitmap的GetPixel(int x, int y)方法,开发者可以精确获取图像任意坐标位置的Color结构体,包含RGB分量及透明度等属性。文中详细说明了位深度(BitDepth)原理,并提供了Windows窗体应用示例代码,演示了实时获取鼠标位置对应像素颜色信息的功能实现,包括显示RGB值、透明度及HSL色彩空间转换等特性。该技术适用于图像处理、

2025-08-09 12:13:04 517

原创 光标Cursor

CUR文件是静态光标格式,其结构与ICO图标文件相同但包含热点坐标标记点击位置。核心特点包括:1) 使用PE文件规范,含图像数据和透明掩码区;2) 热点坐标默认左上角,可自定义;3) 与ANI动态光标共享单帧结构。开发中可通过Cursor类加载,如游戏《古剑奇谭》通过代码动态切换自定义光标。制作工具如Microangelo支持PSD/JPG转CUR格式,但需注意高分辨率光标在低配设备可能闪烁。实际应用需处理多线程UI更新和热点位置逻辑。

2025-08-05 18:59:52 993

原创 Python进阶(5):类与继承

Python支持多继承,通过继承可以实现代码重用和类关系管理。定义子类时在类名后括号内指定多个父类即可实现多继承。子类可重写父类方法,若需调用父类初始化方法需使用super()函数。示例中Biology和Animal类被Dog类多重继承,Cat类单继承Animal并调用父类初始化。多继承机制使Python类设计更加灵活,能够实现复杂的功能组合。

2025-08-02 16:38:15 443

原创 C#将【程序集引用-依赖关系】展示到NetronLight图表中

本文介绍了如何在C#中将程序集引用关系可视化展示到NetronLight图表中。主要实现功能包括:1)修改NetronLight.SimpleRectangle的Paint事件使文本居中显示;2)创建FormShowAssemblyDependent窗体,包含树形视图和图表控件;3)递归获取程序集依赖关系并在树形视图中展示;4)根据节点层级在图表中生成矩形节点并自动布局;5)为存在引用关系的节点添加连接线。关键点包括计算文本宽度实现居中对齐、层级节点分组处理、自动布局算法以及引用关系连线处理。通过这种方式可

2025-07-18 17:28:57 361

原创 Python进阶(4):类与面向对象程序设计

摘要:面向对象编程(OOP)以对象为核心,对象具有唯一性,包含属性和行为。Python中一切都是对象,类(class)是封装对象属性和行为的载体,通过实例化(Instance)创建对象。OOP三大特征包括:封装(隐藏实现细节)、继承(复用父类特性)和多态(子类差异化实现)。类定义使用class关键字,init()方法类似构造函数,self参数代表实例本身。成员分为类属性和实例属性,访问控制通过下划线前缀实现(private/protected)。@property装饰器可将方法转为只读属性,并添加安全约束。

2025-07-14 17:02:36 815

原创 C#使用Roslyn框架编译器和代码分析(3):提取方法:某一个方法是否调用另一个方法

摘要:本文介绍了如何使用Roslyn框架分析C#代码中方法间的调用关系。通过创建部分类Program.Partial.cs,实现了一个IsCalledOtherMethod方法,该方法可以检测指定方法是否调用了另一个目标方法。该方法首先获取语法树中所有方法声明节点,然后查找指定方法内部的所有调用表达式,最后通过标识符匹配判断是否存在目标方法的调用。测试案例展示了该方法的使用方式,通过读取外部代码文件进行调用关系验证,并输出检测结果。该方法适用于代码分析和重构场景,能有效识别方法间的依赖关系。

2025-07-11 10:52:37 257

原创 C#将树图节点展示到NetronLight图表中

摘要:本文介绍了使用C#开源框架NetronLight将TreeView树形结构节点可视化展示为流程图的方法。通过创建窗体应用程序,添加NetronLight项目引用并扩展其GraphControl控件功能,实现了树节点到流程图的转换。重点演示了如何按节点层级组织布局、生成形状节点以及建立父子节点连线关系,最终将地理行政区划树形数据以层次化流程图形式呈现。项目代码包含树形数据生成、节点深度计算、形状节点定位和连线处理等核心功能模块。

2025-07-10 11:17:45 422

原创 C#使用MindFusion.Diagramming框架绘制流程图(4):为图表增加布局Layout

摘要:本文介绍了使用MindFusion.Diagramming框架实现加权图最短路径算法及多种布局方式的C#解决方案。文章详细说明了如何通过Layout基类派生不同布局样式(包括流程图、树形、分层、环绕等7种布局),并通过FormDijkstraDiagram窗体实现迪杰斯特拉算法计算节点间最短路径。代码展示了节点初始化、边连接、最短路径计算及可视化布局切换功能,其中特别演示了泳道布局和三角形布局两种典型效果。该实现通过下拉框切换不同布局方式,为加权图的可视化分析提供了灵活多样的展示方案。

2025-07-05 16:24:45 475

原创 C#使用开源框架NetronLight绘制流程图

本文介绍了使用开源框架NetronLight在C#中绘制流程图的方法。该框架核心由GraphControl控件组成,包含ShapeBase形状节点(矩形、椭圆、文本标签)和Connection连线。主要元素包括:1)Connector连接端点;2)ShapeBase形状基类及其三个子类;3)节点间连线。文章提供了完整的示例代码,演示如何创建各种形状节点并通过指定端点进行连线,最终形成完整的流程图结构。相比收费的MindFusion.Diagramming,NetronLight提供了轻量级的开源替代方案。

2025-07-05 15:21:04 969 1

原创 C#使用Roslyn框架编译器和代码分析(2):获取某一个方法是否调用另一个方法

摘要:本文介绍了使用Roslyn框架分析C#代码中方法调用关系的方法。通过解析语法树获取MethodDeclarationSyntax节点来识别声明的方法,并利用InvocationExpressionSyntax节点追踪方法间的调用关系。代码示例展示了如何提取方法声明信息(包括返回类型、参数列表)以及检测方法间的调用链(如方法A调用方法B)。文中还提供了完整的程序示例,演示了从代码文件中读取内容、解析语法树、遍历方法调用关系的全过程,帮助开发者实现代码结构分析和调用关系可视化。

2025-06-30 16:37:27 415

原创 C#使用Roslyn框架编译器和代码分析

摘要:本文介绍了Roslyn编译器平台中的Microsoft.CodeAnalysis.SyntaxNode类,它是.NET开源编译器平台的核心组件,用于表示源代码中的语法节点。文章通过一个控制台应用程序RoslynDemo演示了如何使用SyntaxNode进行代码分析,包括解析源代码文件、获取语法树、遍历方法声明及其语句结构,以及识别方法间的调用关系。程序通过分析测试代码code.txt,展示了如何获取方法参数列表、返回类型、方法体内容,并检测方法间的调用依赖关系。该示例体现了Roslyn在代码分析和重构

2025-06-30 09:09:42 476

原创 Ethernet、EtherCAT和Profinet区别与联系

以太网(Ethernet)和EtherCAT是两种重要的网络通信技术。以太网作为通用局域网技术,采用CSMA/CD协议实现数据传输,支持多种网络拓扑和TCP/IP协议栈。而EtherCAT是专为工业自动化设计的实时以太网协议,采用主从架构和硬件处理机制,实现微秒级通信延迟,支持环形网络拓扑。两者都基于标准以太网物理层,但EtherCAT优化了实时性能,特别适用于运动控制等工业场景。相比之下,Profinet是另一种工业以太网协议,与EtherCAT在技术实现和市场生态上存在差异。这三种技术在工业自动化领域各

2025-06-23 16:32:49 1690

原创 C#使用MindFusion.Diagramming框架绘制流程图(3):加权图的最短路径算法

使用MindFusion.Diagramming画出流程图,并按照当前示例图实现最短路径算法[迪杰斯特拉最短路径算法]我们使用MindFusion.Diagramming.DiagramItem的属性Weight权重来进行处理我们设定MindFusion.Diagramming.DiagramLink连接是双向的权重,连接的文本就显示为权重WeightMindFusion.Diagramming.DiagramNode节点之间的最短路径

2025-06-11 12:03:34 482

原创 C#使用MindFusion.Diagramming框架绘制流程图(2):流程图示例

摘要:本文介绍了如何使用MindFusion.Diagramming框架在C#中创建流程图应用程序。主要内容包括:1)新建Windows窗体项目并通过NuGet安装框架;2)添加DiagramView控件和Diagram组件;3)设置基本属性如网格显示、节点连接限制;4)实现节点创建、编辑和双击事件处理;5)添加"开始"和"结束"节点作为流程图基础;6)开发节点文本编辑窗口;7)实现获取所有节点和连接信息的按钮功能。文章通过代码示例详细演示了框架的基本使用方法,包括节

2025-06-07 16:47:20 911

原创 C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型

摘要:MindFusion.Diagramming是一款基于C#的图表绘制框架,通过MindFusion.Diagramming.dll库实现。该框架构建于GDI+之上,支持创建流程图、网络图等多种图表类型。核心组件包括Diagram(图表容器)、DiagramNode(节点基类)、DiagramLink(连线)和各类具体节点(如ShapeNode几何节点、SvgNode矢量节点、TableNode表格节点等)。框架提供丰富的属性控制,如节点输入输出连接、形状样式、文本编辑等,并支持XML序列化、拖放操作和

2025-06-06 18:20:13 1188

原创 C#对集合进行分组IGroupingout TKey, out TElement>

C#中的Linq提供了GroupBy()方法,用于根据指定的键选择器函数对集合元素进行分组,返回一个IEnumerable<IGrouping<TKey, TSource>>对象。IGrouping<TKey, TElement>接口表示具有公共键的对象集合,其中TKey为键的类型,TElement

2025-05-22 20:21:20 462

原创 Python进阶(3):函数(接上篇)

两个下划线开始,两个下划线结束的属性代表特殊指定属性函数名.__name__ 打印函数名函数名.__defaults__ 打印默认值元组匿名函数(lambda)是指没有名字的函数,应用在需要一个函数但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只使用一次。兰姆达lambda表达式与C#的兰姆达lambda表达式基本上一致,只是在语法上有所变化(C#使用"=>",python使用lambda关键字)

2025-04-12 15:27:16 647

原创 Python进阶(2):函数

在调用函数时,指定的实际参数的数量必须与形式参数的数量一致,否则将抛出 TypeError 异常,提示缺少必要的位置参数。在调用函数时,指定的实际参数的位置必须与形式参数的位置一致,否则将产生以下两种结果。

2025-04-10 19:53:04 942

原创 Python进阶(1):正则表达式

在实现时,可以使用re模块提供的方法(如 search()、match()、findall()等进行字符串处理,也可以先使用re 模块的 compile()方法将模式字符串转换为正则表达式对象,然后再使用该正则表达式对象的相关方法来操作字符串。search()方法用于在整个字符串中搜索第一个匹配的值,如果在起始位置匹配成功,则返回 Match对象,否则返回 None。如果匹配成功,则返回包含匹配结构的列表,否则返回空列表。count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配。

2025-04-10 09:44:45 1226

原创 Python入门(9):Python字符串

count()count()方法用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回否则返回出现的次数。find()该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引。rfind()[从右往左查找]该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引。index()index()方法与find()方法类似,也是用于检索是否包含指定的子字符串。只不过

2025-04-08 11:18:48 774

原创 Python入门(8):Python序列结构-集合

集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号;进行并集运算时使用“|”符号:进行差集运算时使用“-”符号,进行对称差集运算时使用“^”符号。交集:获取两个集合的相同元素并集:合并两个集合,重复元素的只保留一个差集A-B:集合A中的元素,删除掉在B中的元素差集B-A:集合B中的元素,删除掉在A中的元素对称差集:并集集合中移除所有重复元素[并集-交集]

2025-04-03 16:48:24 316

原创 Python入门(7):Python序列结构-字典

定义字典时,每个元素都包含两个部分"键”和“值”,并且在“键”和“值”之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一个大括号“{}”中。使用del命令来删除字典。

2025-04-01 23:56:24 650

原创 Python入门(6):Python序列结构-元组

对于已经创建的元组,不再使用时,可以使用 del语句将其删除元组是不可变序列,所以我们不能对它的单个元素值进行修改,但是元组也不是完全不能修改。我们可以对元组进行重新赋值。在进行元组连接时,连接的内容必须都是元组。不能将元组和字符串或者列表进行连接。在进行元组连接时,如果要连接的元组只有一个元素,一定不要忘记后面的逗号元组推导式print("返回生成器对象:",randomNumber)

2025-04-01 16:21:50 456

原创 Python入门(5):Python序列结构-列表

切片类似于C#中的结构ArraySegment[部分数组]使用列表对象的 remove()方法删除元素时,如果指定的元素不存在,将出现不存在该元素异常,将其优化为先判断。

2025-03-11 14:01:52 1059

原创 Python入门(4):Python流程控制

python和C++一样,if 表达式只要为True,非零,非空,都是有效的语法执行,在判断if条件时,C#做的非常好 ,C#中必须 if(bool类型表达式) ,不能出现 if (1) 的情况,而在python中 if 1 if(a=1) if(a==1)都是有效语法.如果表达式的值为假,就跳过“语句块”,继续执行后面的语句,这种形式的if语句相当于汉语里的“如果……end:用于指定计数的结束值(但不包括该值,如range(7),则得到的值为 0~6,不包括 7),不能省略。

2025-03-08 11:09:32 887

原创 Python入门(3):Python运算符与表达式

Python 中的位运算符有按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位(<<)和右移位(>>)运算符。Python 的运算符的运算规则是:优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序进行。使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学的四则运算应遵循的“先乘除,后加减”是一个道理。比较运算符,也称为关系运算符。

2025-03-05 11:33:28 368

原创 Python入门(2):Python数据类型与转换

Python 是动态类型的语言(也称为弱类型语言),不需要像 Java 或者 C语言一样在使用变量前必须先声明变量的类型。虽然 Python 不需要先声明变量的类型,但有时仍然需要用到类型转换。

2025-03-04 19:22:28 285

AutoSaveTreeNodeDataDemo

private void tvMesInterface_AfterSelect(object sender, TreeViewEventArgs e) { ReadConfig(e.Node.Text); //记录选中的节点 LastSelectedNode = e.Node; } /// <summary> /// 内部成员变量标记,确保BeforeSelect事件不会多次触发 /// </summary> bool inside = false; private void tvMesInterface_BeforeSelect(object sender, TreeViewCancelEventArgs e) { if (!inside) { inside = true;

2022-03-04

C#常见位操作 与或非 BitOperation

Console.WriteLine($"与(&)操作符的位都为1时,才为1,其他都为0,因此与(&)操作符的结果范围在[0, Math.Min(x,y)],x,y均为正整数"); Console.WriteLine($"或(|)操作符的位都为0时,才为0,其他都为1,因此或(|)操作符的结果范围在[Math.Max(x,y), x+y],x,y均为正整数"); Console.WriteLine($"非(~)操作符按位取反,1转化为0, 0转化为1,因此非(~)操作符满足[x+~x=-1]一个数与其取反操作之和为-1"); Console.WriteLine($"异或(^)操作符的位不同时为1, 位相同时为0"); Console.WriteLine($"左移(<<)操作符:【最左侧位不要,在最右侧补0】,相当于乘以2个N次方,【移位是除以32后的余数,范围[0,31],即以32为一个周期】"); Console.WriteLine($"右移(>>)操作符:【最右侧位

2022-03-05

AutoGetFileTypeDemo.rar

自动获取真实文件类型

2022-01-06

InovancePlcDemo.rar

汇川PLC的Modbus测试Demo

2021-09-08

OmronFinsDemo.rar

OmronFins TCP通信,使用C#

2021-11-16

Base64ConsoleDemo.rar

Console.WriteLine($"比较 手动转化 与 调用系统函数转化 Base64结果:【{base64Custom == base64Auto}】"); Console.WriteLine($"比较 手动还原 与 调用系统函数还原 Base64结果:【{srcCustom == srcAuto}】");

2021-12-11

MazeDemoConsole.rar

迷宫控制台

2021-12-15

TrainPathBookingDemo.zip

多人抢火车票模拟器

2021-12-26

modbus协议报文分析_汇川PLC.docx

Modebus报文详解 0x03 读取多个类型寄存器 0x10写多个连续寄存器

2021-09-04

Base64EncoderDemo.rar

Base64属于简单加密算法的一种。类似于凯撒密码【它是一种替换加密的技术】 Base64字符串由65个字符组成, 大写字母A~Z, 小写字母a~z, 数字0~9,以及三个特殊字符+、/、= 【=“等号”用于补充字符,使Base64字符串长度变成4的倍数】

2021-12-10

MazeTest.rar

迷宫

2021-12-15

BIndDataDemo.zip

DataGridView数据绑定 刷新,多行数据

2021-11-07

MultiThreadMySqlDemo.rar

读写mysql数据库测试

2021-10-10

WorkOrderDemo.rar

工单混料生产方案

2021-09-12

软件打包安装工具.rar

软件打包安装工具

2021-10-15

DeviceStatusDemo.rar

设备状态监控DeviceStatusDemo, 保存到本地sqlite数据库中

2021-08-07

QRCodeDemo.rar

生成二维码与解析二维码

2021-07-02

CommonFormDesignerDemo.rar

统一列表界面和编辑界面,只使用两个界面即可实现 增删改查 某个表单 DataGridViewConf_Form.xls AutoGenerateUtil.cs NpoiExcelOperateUtil.cs

2021-05-09

AutoGenerateFormExtern.rar

自动生成CRUD,表单相关代码 DataGridViewConf_Form.xls sh_db.sql AutoGenerateUtil.cs

2021-05-08

AutoGenerateForm.rar

自动生成实体类工具 sb.AppendLine($@" /// <summary> /// {columnComment} /// </summary>{attributeMessage} public {dataType} {columnName} {{ get; set; }}");

2021-04-27

C#获取图像指定像素位置的颜色

C#获取图像指定像素位置的颜色

2025-08-09

光标鼠标CursorDemo

光标鼠标Cursor。 public static extern bool SetCursorPos(int x, int y); Cursor cursor = new Cursor(files[i]); RefreshUI(this, () => button.Cursor = cursor);

2025-08-05

C#使用文件读写操作实现仙剑五前传称号存档修改

C#使用文件读写操作实现仙剑五前传称号存档修改

2025-02-15

C#树图显示目录下所有文件以及文件大小

C#树图显示目录下所有文件以及文件大小

2025-01-21

C#使用MVC框架创建WebApi服务接口

C#使用MVC框架创建WebApi服务接口

2025-01-07

使用DataGridView来实现的工步跳转

使用DataGridView来实现的工步跳转

2024-12-31

C#使用MQTT测试,客户端和服务端

C#使用MQTT测试

2024-09-04

C#使用GDI对一个图像Image进行任意角度旋转

C#使用GDI对一个图像Image进行任意角度旋转

2024-08-14

使用GDI画图片生成合成图片并调用打印机进行图片打印

使用GDI画图片生成合成图片并调用打印机进行图片打印

2024-02-06

使用netdxf(C#)框架实现dxf文件读取与导出坐标

使用netdxf(C#)框架实现dxf文件读取与导出坐标

2024-01-12

C#使用随机数模拟英雄联盟S13瑞士轮比赛

C#使用随机数模拟英雄联盟S13瑞士轮比赛

2023-11-05

获取中文词组的汉语拼音首字母拼接

GBK汉字拼音对照表

2023-09-17

SaveDefaultXmlConfigDemo.rar

C#读写应用程序配置文件App.exe.config,本质是xml文件的读写。 我们将配置文件的AppSettings节点和ConnectionStrings节点内容自动绑定到分组框控件GroupBox中,同时可以批量保存。

2022-06-29

C#使用GDI绘制九宫格

C#使用GDI绘制九宫格 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-24

九宫格与EightDiagram的画图GDI

九宫与方位 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-16

西西弗斯黑洞【123数字黑洞】 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495

西西弗斯黑洞【123数字黑洞】 /// ​设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数 /// 比如86420135799,按照偶数个数5,奇数个数6,数字总个数11,拼接成一个新的整数 5611 /// 然后依次转化为134,然后转化为123结束 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495 /// 三个0~9之间的数字【不能完全相同】组成的三位数的最大值 减去 最小值,获取一个【差值】新三位数(不够就补0) /// 对三位数继续计算最大值 和 最小值,最终差值(终结黑洞值)为495

2022-05-04

FixedDemo C# fixed

使用fixed指针修改内存的值,不能使用fixed关键字获取结构的地址, 坐标,fixed关键字不能获取已固定的表达式的地址 /// 因此fixed不能获取结构struct的地址

2022-04-04

使用循环【迭代】来进行转化数字为中文

/// <summary> /// 对【0000~9999】之间的数字进行迭代解析成中文 /// 类似于除基取余法 /// </summary> /// <param name="multiple">倍率</param> /// <param name="number">需要解析的数字</param> /// <returns></returns> private static string GetChinese(int multiple, int number) { if (number == 0) { return ChineseCollection[0].ToString(); } string chinese = string.Empty; int quotient = 0;//商

2022-03-25

NumberToChineseDemo

/// <summary> /// 数字与中文描述转化示例 /// </summary> public class NumberChineseTranslateUtil { /// <summary> /// 中文字符描述集合 /// 十索引为10 /// 百索引为11 /// 千索引为12 /// 万索引为13 /// 亿索引为14 /// </summary> static readonly char[] ChineseCollection = new char[] { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十','百','千','万','亿' }; /// <summary> /// 数字转中文 /// 按照【个、十、百、千、万、亿】 /// 只考虑正整数和

2022-03-24

根据运算符的优先级,依次添加到堆栈中 /// 最终返回的列表不存在左右小括号,只有数字 以及 加减乘除运算符

StackCalculateUtil RecursionCalculateUtil 使用递归,计算含有小括号,加减乘除的表达式 /// 1.查找小括号,然后依次消去所有的小括号,此时表达式没有小括号 /// 2.进行乘除运算 /// 3.最后进行加减运算

2022-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除